https://wiki.archlinux.jp/api.php?action=feedcontributions&user=Hiromi-mi&feedformat=atom
ArchWiki - 利用者の投稿記録 [ja]
2024-03-19T09:01:18Z
利用者の投稿記録
MediaWiki 1.34.0
https://wiki.archlinux.jp/index.php?title=I3&diff=26437
I3
2022-07-16T16:57:06Z
<p>Hiromi-mi: /* i3status の代替 */ goi3barのAURパッケージリンクを追加</p>
<hr />
<div>{{DISPLAYTITLE:i3}}<br />
[[Category:タイル型ウィンドウマネージャ]]<br />
[[Category:動的ウィンドウマネージャ]]<br />
[[en:i3]]<br />
[[ko:I3]]<br />
[[ru:I3]]<br />
[[zh-hans:I3]]<br />
{{Related articles start}}<br />
{{Related|タイル型ウィンドウマネージャの比較}}<br />
{{Related|ウィンドウマネージャ}}<br />
{{Related articles end}}<br />
<br />
[https://i3wm.org/ i3] は wmii にインスパイアされて開発された動的[[Wikipedia:ja:タイル型ウィンドウマネージャ|タイル型ウィンドウマネージャ]]で、主に開発者や上級ユーザーをターゲットにしています。<br />
<br />
i3 が公表している目標は、わかりやすいドキュメント、適切なマルチモニタサポート、ウィンドウのツリー構造、[[vim]] のような様々なモードなどです。<br />
<br />
==インストール==<br />
<br />
i3 は、{{Pkg|i3-wm}} パッケージでインストールできます。<br />
<br />
{{Grp|i3}} パッケージグループも利用可能です。これには、ウィンドウマネージャ、スクリーンロッカー、標準出力を介して {{Pkg|i3bar}}{{Broken package link|置換パッケージ: {{Pkg|i3-wm}}}} にステータスラインを書き込む2つのプログラムが含まれています。 <br />
<br />
{{Note|{{Pkg|i3-wm}} は {{Pkg|i3-gaps}} (gapsなどの機能を持つ ''i3'' のフォーク) と競合し、デフォルトでは {{Pkg|i3-gaps}} がインストールされます。}}<br />
<br />
== 起動 ==<br />
<br />
=== tty ===<br />
<br />
[[xinit]] で {{ic|i3}} を実行します<br />
<br />
=== ディスプレイマネージャー ===<br />
<br />
{{Pkg|i3-wm}} にはウィンドウマネージャーを起動する [[Xsession]] として {{ic|i3.desktop}} が含まれています。{{ic|i3-with-shmlog.desktop}} はログを有効にします(デバッグに便利です)。{{AUR|i3-gnome}} は ''i3'' を [[GNOME]] に統合します。<br />
<br />
==使用方法==<br />
<br />
詳しい情報は [https://i3wm.org/docs 公式のドキュメント]、すなわち [https://i3wm.org/docs/userguide.html i3 User’s Guide] を見て下さい。<br />
<br />
===キーバインド===<br />
<br />
i3 では修飾キー ({{ic|$mod}} と表記されます) を使ってコマンドを呼び出します。デフォルトでは {{ic|Alt}} (Mod1) ですが、{{ic|Super}} (Mod4) も良く使われます。大抵のキーボードでは Super は Windows アイコンが印されたキーになります。Apple キーボードなら Command キーです。<br />
<br />
デフォルトのキーバインドについては [https://i3wm.org/docs/refcard.html i3 リファレンスカード] や [https://i3wm.org/docs/userguide.html#_using_i3 Using i3] を見て下さい。新しくショートカットを追加する方法は [https://i3wm.org/docs/userguide.html#keybindings Keyboard bindings] に載っています。<br />
<br />
Qwerty 以外のキーボード配列を使っている場合は[[#設定ウィザードとキーボードレイアウト|設定ウィザードとキーボードレイアウト]]に書かれているように設定ウィザードを迂回すると良いでしょう。<br />
<br />
===コンテナとレイアウト===<br />
<br />
i3 はコンテナを基本単位としたツリー構造でウィンドウを管理します。この構造は縦や横に分岐していきます。デフォルトではコンテナはタイル状に並べられますが、タブでまとめたり積み重ねるレイアウトに設定したり、フロートさせることもできます (ダイアログウィンドウのように)。フローティングウィンドウは常に一番上に表示されます。<br />
<br />
詳しくは [https://i3wm.org/docs/userguide.html#_tree i3 Tree] や [https://www.youtube.com/watch?v=AWA8Pl57UBY Containers and the tree data structure] を見て下さい。<br />
<br />
===アプリケーションランチャー===<br />
<br />
i3 はアプリケーションランチャーとして [[dmenu]] を使っており、デフォルトでは {{ic|$mod+d}} で呼び出せます。dmenu の代わりに、透過機能や xft フォントのサポートなどが搭載されている AUR の {{AUR|dmenu2}} を使うこともできます。<br />
<br />
{{Pkg|i3-wm}} には ''dmenu'' の [[Wikipedia:ja:Perl|Perl]] ラッパーである ''i3-dmenu-desktop'' が含まれており、[[デスクトップエントリ]]を利用してインストールされている全てのアプリケーションのリストを作成します。また、{{AUR|j4-dmenu-desktop-git}} パッケージを使うこともできます。こちらは ''i3-dmenu-desktop'' とほぼ同様に使える上に、高速に動作します [https://github.com/enkore/j4-dmenu-desktop/blob/master/README.md]。<br />
<br />
{{Pkg|rofi}} は人気のある dmenu の代替品であり、デスクトップエントリを一覧表示できます。<br />
<br />
==== KDE Plasma/i3 のアプリケーションランチャーとしての KRunner ====<br />
<br />
ここに示すように、KDE Plasma といっしょにi3を実行することができます: [[KDE#KDE で別のウィンドウマネージャを使う]]<br />
<br />
{{ic|1=KDEWM=/usr/bin/i3}} で Plasma を実行している場合、''i3'' の設定に以下を追加することで、[[KRunner]] を {{ic|$mod+d}} でアプリケーションランチャーとして代替することができます:<br />
<br />
{{hc|~/.config/i3/config|2=<br />
set $menu --no-startup-id qdbus org.kde.krunner /App display<br />
bindsym $mod+d exec $menu<br />
}}<br />
<br />
==設定==<br />
<br />
詳しくは [https://i3wm.org/docs/userguide.html#configuring Configuring i3] を参照。この記事では ''i3'' の設定ファイルは {{ic|~/.config}} に置くことにします (''i3-config-wizard'' では {{ic|~/.i3/config}} に作成されます)。<br />
<br />
===設定ウィザードとキーボードレイアウト===<br />
<br />
''i3'' を最初に起動したとき、設定ウィザードの ''i3-config-wizard'' が実行されます。このツールは {{ic|/etc/i3/config.keycodes}} にあるテンプレート設定ファイルを書き換えることで {{ic|~/.i3/config}} を作成します。デフォルトテンプレートには以下の2つの変更が加えられます:<br />
<br />
#ウィザードはデフォルトの修飾キーを何にするかユーザーに尋ねます。{{ic|set $mod Mod1}} のような行がテンプレートに追加されます。<br />
#ユーザーの現在のキーボードレイアウトにあわせて ''bindcode'' 行をすべて ''bindsym'' 行で置き換えます。<br />
<br />
後者が実行されることで、4つのナビゲーションショートカット {{ic|j}}, {{ic|k}}, {{ic|l}} と Qwerty キーボードの"セミコロン"が正しいキーシムにマッピングされます。例えば [[Dvorak]] キーボードなら {{ic|h}}, {{ic|t}}, {{ic|n}}, {{ic|s}} になります。ただし副作用として他のキーシムのマッピングが変更されるため Dvorak ユーザーはむしろ混乱してしまうかもしれません。"再起動"は {{ic|$mod1+r}} ではなく {{ic|$mod1+p}} に、"横に分割"は {{ic|$mod1+h}} ではなく {{ic|$mod1+d}} にバインドされます。チュートリアルに記載されているバインドと同じ、覚えやすいキーバインドを使いたい場合は {{ic|/etc/i3/config}} を {{ic|~/.config/i3/config}} (または {{ic|~/.i3/config}}) にコピーしてください。<br />
<br />
キーボードレイアウトを頻繁に変更するユーザーなどに対応するために、キーコードによる設定も可能です。<br />
<br />
=== 自動起動 ===<br />
<br />
{{ic|~/.config/i3/config}} ファイルに {{ic|exec}} コマンドを追加します。例えば、以下のようになります。<br />
<br />
exec terminator<br />
<br />
また、[[XDG Autostart]] を使用することもできます。<br />
<br />
===カラースキーム===<br />
<br />
設定ファイルを使ってウィンドウ装飾の色をカスタマイズすることができますが、構文のためにテーマを作成したり共有するのは現実的ではありません。ユーザーが様々なテーマを作るのを楽にさせるプロジェクトが複数存在します。<br />
<br />
* {{App|j4-make-config|あなたの設定をテーマのコレクションや個人用の設定パーツ (たとえばホスト用の設定) と組み合わせます。テーマの簡単な変更や、柔軟でダイナミックな設定のカスタマイズを可能にします。|https://github.com/okraits/j4-make-config|{{Aur|j4-make-config-git}}}}<br />
<br />
===i3bar===<br />
<br />
i3bar はワークスペースの情報を表示するほかに、次のセクションで説明している、i3status などに入力を行うこともできます。例:<br />
<br />
{{hc|~/.config/i3/config|2=<br />
bar {<br />
output LVDS1<br />
status_command i3status<br />
position top<br />
mode hide<br />
workspace_buttons yes<br />
tray_output none<br />
<br />
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1<br />
<br />
colors {<br />
background #000000<br />
statusline #ffffff<br />
<br />
focused_workspace #ffffff #285577<br />
active_workspace #ffffff #333333<br />
inactive_workspace #888888 #222222<br />
urgent_workspace #ffffff #900000<br />
}<br />
<nowiki>}</nowiki><br />
}}<br />
<br />
詳しくは [https://i3wm.org/docs/userguide.html#_configuring_i3bar Configuring i3bar] を見て下さい。<br />
<br />
====i3bar の代替====<br />
<br />
旧来の[[デスクトップ環境]]に入っているようなパネルを使いたいというユーザーもいるかもしれません。起動時に i3 の中でパネルアプリケーションを起動することで他のパネルを使うことができます。<br />
<br />
[[Xfce#パネル|XFCE パネル]]の場合、次の行を {{ic|~/.config/i3/config}} のどこかに追加してください:<br />
<br />
exec --no-startup-id xfce4-panel --disable-wm-check<br />
<br />
{{Note|[[デスクトップ環境]]固有のパネル機能は基本的に動作しません (例: ワークスペースやセッションを管理するウィジェット)、ただし i3 の機能がそれによって影響を受けることはないはずです。}}<br />
<br />
{{ic|~/.config/i3/config}} の {{ic|<nowiki>bar{ }</nowiki>}} セクションをコメントアウトすることで i3bar は無効にできます。もしくは以下を使ってください:<br />
<br />
{{hc|~/.config/i3/config|<br />
# bar toggle, hide or show<br />
bindsym $mod+m bar mode toggle<br />
}}<br />
<br />
この方法では好きなようにバーを表示したり隠したりできます。<br />
<br />
===i3status===<br />
<br />
デフォルトの設定ファイルをホームディレクトリにコピーしてください:<br />
<br />
$ cp /etc/i3status.conf ~/.config/i3status/config<br />
<br />
デフォルトの設定では定義されていないプラグインがあり、いくつかの設定はあなたのシステムでは無効かもしれません。そのためシステムに応じて設定を更新する必要があります。詳しくは {{ic|man 1 i3status}} を見て下さい。<br />
<br />
====i3status の代替====<br />
<br />
* {{App|[[conky]]|拡張性の高いシステムモニター。i3bar で使用する場合は [https://i3wm.org/docs/user-contributed/conky-i3bar.html このチュートリアル] を見て下さい。|https://github.com/brndnmtthws/conky|{{Pkg|conky}}}}<br />
<br />
* {{App|i3blocks|シェルスクリプトで拡張することができます。クリックイベントや割り込み、ブロックごとによるリフレッシュ間隔の定義などを管理可能。|https://github.com/vivien/i3blocks|{{Pkg|i3blocks}}}}<br />
<br />
* {{App|i3phtatus|PHP で書かれた i3status の代替。簡単に拡張できます。|https://github.com/mwgg/i3phtatus}}<br />
<br />
* {{App|goi3bar|Go で書かれた i3status の代替。コンポーネントを自由にアップデートすることができます。|https://github.com/denbeigh2000/goi3bar|{{AUR|goi3bar-git}}}}<br />
<br />
* {{App|i3pystatus|デフォルトで多数のプラグインと設定オプションがある拡張可能な Python 3 ステータスバー。|https://github.com/enkore/i3pystatus i3pystatus|{{AUR|i3pystatus-git}}}}<br />
<br />
* {{App|i3situation|もうひとつの Python 3 ステータスバージェネレータ。|https://github.com/HarveyHunt/i3situation|{{Aur|i3situation-git}}}}<br />
<br />
* {{App|j4status|C で書かれており、プラグインで設定ができる、ステータスラインを提供します。追加プラグインは {{Aur|j4status-plugins-git}} に入っています。|http://j4status.j4tools.org/|{{Aur|j4status-git}}}}<br />
<br />
====i3status のラッパー====<br />
<br />
* {{App|[[en2:h2status|h2status]]|i3status の Bash ラッパー、カスタム json エントリを入力として、非同期のステータスバーの更新だけでなくクリックイベントの処理が可能。|https://wiki.archlinux.org/index.php/H2status|{{Aur|h2status}}{{Broken package link|{{aur-mirror|h2status}}}}}}<br />
<br />
* {{App|i3cat|[[go]] ベースのラッパーで外部の複数のソースからの入力を繋げることができます。クリックイベントの処理、ユーザーが定義した信号を子プロセスに転送することが可能。|http://vincent-petithory.github.io/i3cat/|{{AUR|i3cat-git}}}}<br />
<br />
* {{App|py3status|Python による拡張可能な i3status ラッパー。|https://github.com/ultrabug/py3status|{{Pkg|py3status}}}}<br />
<br />
====ステータスバーにアイコンフォント====<br />
<br />
''i3bar'' には XBM アイコンサポートの[[#パッチ|パッチ]]をあてることができますが、代わりにアイコンフォントを使うこともできます。<br />
<br />
* {{App|ttf-font-awesome|CSS でカスタマイズできるスケーラブルなベクターアイコン。それぞれの記号の Unicode を記した [http://fortawesome.github.io/Font-Awesome/cheatsheet/ チートシート] があります。|http://fortawesome.github.io/Font-Awesome/|{{Pkg|ttf-font-awesome}}}}<br />
<br />
* {{App|ttf-font-icons|Awesome と Ionicons の重複をなくしてサイズを合わせたミックス。DejaVu Sans と Awesome が重複しないようにします。|http://kageurufu.net/icons.pdf|{{AUR|ttf-font-icons}}}}<br />
<br />
フォントを混ぜ合わせるには、設定ファイルにフォントのフォールバックを定義してください、以下のように {{ic|,}} でフォントを区切ります:<br />
{{hc|~/.config/i3/config|2=<br />
bar {<br />
...<br />
font pango:DejaVu Sans Mono, Icons 8<br />
...<br />
<nowiki>}</nowiki><br />
}}<br />
<br />
[https://developer.gnome.org/pango/stable/pango-Fonts.html#pango-font-description-from-string pango syntax] に従って、カンマで区切ったフォントファミリーのリストを記述してそれから一番後ろにサイズをひとつだけ指定してください。各フォントにサイズを設定するのは最後のフォントを除いて無視される原因となります。<br />
<br />
最後に、アイコングラフをフォーマット文字列にして {{ic|~/.config/i3status/config}} に入力します。入力するために、上でリンクしているチートシートを見てユニコード番号を使います。入力方法はテキストエディタによって異なります。例えば "ハート" アイコン (ユニコード番号 f004) を入力するには:<br />
<br />
*様々な GUI のテキストエディタ (例: [[gedit]] や Leafpad) とターミナル (例: GNOME Terminal, xfce4-terminal): {{ic|ctrl+shift+u}}, {{ic|f004}}, {{ic|Enter}}<br />
*[[Emacs]]: {{ic|ctrl+x}}, {{ic|8}}, {{ic|Enter}}, {{ic|f004}}, {{ic|Enter}}<br />
*[[Vim]] (挿入モード): {{ic|Ctrl+v}}, {{ic|uf004}}<br />
*[[urxvt]]: {{ic|Ctrl+Shift}} を押して、{{ic|f004}} を入力<br />
<br />
===ターミナルエミュレータ===<br />
<br />
デフォルトでは {{ic|$mod+Return}} を押すとターミナルを呼び出すスクリプトの {{ic|i3-sensible-terminal}} が起動します。ターミナルを呼び出す順番については {{ic|man i3-sensible-terminal}} を見て下さい。<br />
<br />
他のターミナルを起動するには、{{ic|~/.config/i3/config}} の次の行を変更してください:<br />
<br />
bindsym $mod+Return exec i3-sensible-terminal<br />
<br />
または、{{ic|$TERMINAL}} 変数を[[環境変数#ユーザーごと|ローカルで定義]]してください:<br />
<br />
$ export TERMINAL=''yourterminal''<br />
<br />
=== タイトルクリックを無効にする ===<br />
<br />
タイトルフレームをクリックしたときにウィンドウを選択しないようにするための {{ic|bindsym button1 nop}} を追加します。デフォルトのレイアウトがタブになっていて、アプリケーション内で何かをクリックする代わりに i3 のタブをクリックしてしまうことが多い場合に便利です。<br />
<br />
==ヒントとテクニック==<br />
<br />
===開いているウィンドウにジャンプ===<br />
<br />
*{{App|quickswitch-i3|i3 でウィンドウを素早く切り替え・確認するための Python ユーティリティ。|https://github.com/OliverUv/quickswitch-for-i3/|{{Aur|quickswitch-i3}}}}<br />
<br />
*{{App|i3-wm-scripts|正規表現にマッチする名前を持ったウィンドウを検索してジャンプ。|https://github.com/yiuin/i3-wm-scripts||}}<br />
<br />
*{{App|winmenupy|クライアントのリストと一緒に dmenu を起動、ワークスペースの後にソートされます。クライアントを選択するとそのウィンドウにジャンプ。|https://github.com/ziberna/i3-py/blob/master/examples/winmenu.py||}}<br />
<br />
*{{App|rofi|スクラッチパッドウィンドウを検索してジャンプして開く。|https://davedavenport.github.io/rofi/|{{Pkg|rofi}}}}<br />
<br />
=== 緊急ウィンドウにジャンプ ===<br />
<br />
{{ic|.i3/config}} に次を追加: [https://faq.i3wm.org/question/853/how-to-jump-to-urgent-workspace/]<br />
<br />
bindsym $mod+x [urgent=latest] focus<br />
<br />
===ウィンドウレイアウトの保存と復元===<br />
<br />
バージョン 4.8 から、''i3'' のワークスペースレイアウトの保存・復元が可能になっています。これを行うには、次のパッケージが必要です: [[公式リポジトリ]]の {{Pkg|perl-anyevent-i3}} と {{Pkg|perl-json-xs}}。<br />
<br />
{{note|このセクションではワークスペースの現在のウィンドウレイアウトを保存して後から復元する方法だけを説明します。詳細は [https://i3wm.org/docs/layout-saving.html 公式ドキュメント] を参照してください。}}<br />
<br />
====ワークスペースの現在のウィンドウレイアウトを保存====<br />
<br />
現在のウィンドウレイアウトを保存するには、以下の手順を実行:<br />
<br />
#まず、様々なコマンドを使ってワークスペースにウィンドウを開いて適当にリサイズしてください。それぞれのウィンドウを開くのに実行したコマンドを書き出します。<br />
#次に、新しいワークスペースで、ターミナルを開いて次を実行: {{bc|i3-save-tree --workspace N > ~/.i3/workspace_N.json}}N は保存したいワークスペースの番号に置き換えてください。これで N 番目のワークスペースのレイアウトが {{ic|~/.i3/workspace_N.json}} ファイルに保存されます。<br />
#作成したファイルを編集してください。次のコマンドで行うことができます: {{bc|<nowiki>tail -n +2 ~/.i3/workspace_N.json | fgrep -v '// splitv' | sed 's|//||g' > ~/.i3/workspace_N.json</nowiki>}}<br />
<br />
====ワークスペースのウィンドウレイアウトを復元====<br />
<br />
ワークスペースのレイアウトを復元する方法は2つ存在します: スクリプトを書くか、あるいは {{ic|~/.i3/config}} を編集して自動的にレイアウトをロードするかです。このセクションでは前者だけを説明します。後者については [https://i3wm.org/docs/layout-saving.html#_restoring_the_layout 公式ドキュメント] を参照。<br />
<br />
前のセクションで保存したレイアウトを復元するには、以下の内容で {{ic|load_layout.sh}} というファイルを作成します:<br />
<br />
*最初の行:<br />
<br />
{{hc|head=~/load_layout.sh|output=<br />
#!/bin/bash<br />
i3-msg "workspace M; append_layout ~/.i3/workspace_N.json"<br />
}}<br />
<br />
M は保存したレイアウトをロードしたいワークスペースの番号に、N は前のセクションで保存したワークスペースの番号に置き換えてください。<br />
<br />
*前のセクションでウィンドウを開くのに使用したコマンド (コマンドは括弧で括り、閉じ括弧の前にアンパサンドを追加します)。<br />
<br />
例えば、3つの {{ic|uxterm}} ウィンドウを開く場合:<br />
<br />
{{hc|head=~/load_layout.sh|output=<br />
#!/bin/bash<br />
<br />
# First we append the saved layout of worspace N to workspace M<br />
i3-msg "workspace M; append_layout ~/.i3/workspace_N.json"<br />
<br />
# And finally we fill the containers with the programs they had<br />
(uxterm &)<br />
(uxterm &)<br />
(uxterm &)<br />
}}<br />
<br />
それからファイルに実行可能属性を付与:<br />
<br />
$ chmod u+x ~/load_layout.sh<br />
<br />
最後に、スクリプトを実行して N 番目のワークスペースのレイアウトを M 番目のワークスペースにロードします:<br />
<br />
$ ~/load_layout.sh<br />
<br />
{{tip|{{ic|~/.i3/config}} に {{ic|bindsym $mod+g exec ~/load_layout.sh}} を追加して i3 を再起動することで Mod+g で上記のスクリプトを実行できるようになります。}}<br />
<br />
{{note|上のスクリプトが上手く動作しない場合、[https://i3wm.org/docs/layout-saving.html#_editing_layout_files 公式ドキュメント] を参照してください。{{ic|~/.i3/workspace_N.json}} の ''swallows'' セクションを手動で編集する必要があります。}}<br />
<br />
===スクラッチパッドコンテナ===<br />
<br />
デフォルトでは、[https://i3wm.org/docs/userguide.html#_scratchpad スクラッチパッド] は一つのウィンドウしか含んでいません。しかしながら、コンテナをスクラッチパッドにすることが可能です。<br />
<br />
新しいコンテナを作成して (例えば、{{ic|Mod+Enter}})、コンテナを分割し ({{ic|Mod+v}}) 別のコンテナを作成します。親にフォーカスして ({{ic|Mod+a}})、反対方向に分割し ({{ic|Mod+h}})、もう一度作成します。<br />
<br />
最初のコンテナにフォーカスして (必要なら親にもフォーカス)、ウィンドウをフロートさせ ({{ic|Mod+Shift+Space}})、スクラッチパッドに移動します ({{ic|Mod+Shift+-}})。これで自由にコンテナを分割できます。<br />
<br />
{{Note|フロートしているウィンドウでコンテナのサイズを個別に変更することはできません。ウィンドウをフロートさせる前にコンテナのサイズを変えて下さい。}}<br />
<br />
{{Tip|ターミナルアプリケーションしか使わない場合は、代わりに [[tmux]] などのマルチプレクサを使っても良いでしょう。}}<br />
<br />
マルチスクラッチパッドについては [https://faq.i3wm.org/question/138/multiple-scratchpad/i3] も参照してください。<br />
<br />
===スクリーンセーバーと電源管理===<br />
<br />
[[電源管理#xss-lock|xss-lock]] を使うことで i3 セッションの画面ロッカーを登録することが可能です。<br />
<br />
もしくは、''xautolock'' の {{ic|-lockaftersleep}} オプションを使って、スリープやハイバネーションから復帰した後に画面をロックすることができます。{{ic|-time}} オプションは指定時間後に画面をロックします。<br />
<br />
xautolock -time 10 -locker "i3lock -i 'background_image.png'" -lockaftersleep &<br />
<br />
[[DPMS]] も参照。<br />
<br />
===シャットダウン, 再起動, 画面ロック===<br />
<br />
シャットダウン、再起動、画面ロックのキーコンビネーションを {{ic|~/.config/i3/config}} に追加することができます。以下の例では[[systemd#電源管理|電源管理]]コマンドを実行する権限がないユーザーに権限を与えるために {{Pkg|polkit}} をインストールする必要があります。<br />
<br />
{{bc|<br />
set $Locker i3lock && sleep 1<br />
<br />
set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown<br />
mode "$mode_system" {<br />
bindsym l exec --no-startup-id $Locker, mode "default"<br />
bindsym e exec --no-startup-id i3-msg exit, mode "default"<br />
bindsym s exec --no-startup-id $Locker && systemctl suspend, mode "default"<br />
bindsym h exec --no-startup-id $Locker && systemctl hibernate, mode "default"<br />
bindsym r exec --no-startup-id systemctl reboot, mode "default"<br />
bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default" <br />
<br />
# back to normal: Enter or Escape<br />
bindsym Return mode "default"<br />
bindsym Escape mode "default"<br />
}<br />
<br />
bindsym $mod+Pause mode "$mode_system"<br />
}}<br />
<br />
追加したら {{ic|$mod+pause}} を押すことでプロンプトが表示されます。より複雑な動作をさせたい場合は、スクリプトに分離し、mode の中で参照してください [https://gist.github.com/anonymous/c8cd0a59bf4acb273068]。<br />
<br />
{{Note|1=<br><br />
* {{ic|sleep 1}} で小さなディレイを追加することで、サスペンドにより起こりうる競合状態を防いでいます [https://bugs.launchpad.net/ubuntu/+source/unity-2d/+bug/830348]。<br />
* {{ic|systemctl poweroff}} の {{ic|-i}} 引数は、たとえ他のユーザーがログインしていたり ({{Pkg|polkit}} を必要とします)、''logind'' が (誤って) そのように認識していてもシャットダウンを行います [https://bugs.freedesktop.org/show_bug.cgi?id=62676]。<br />
}}<br />
<br />
他の画面ロッカーについては、[[アプリケーション一覧/セキュリティ#スクリーンロック]]を参照。<br />
<br />
=== ターミナルウィンドウを飲み込む ===<br />
<br />
[[dwm]] と同じように、i3 は現在のターミナルウィンドウを新しい GUI ウィンドウで「飲み込む」ことができます。これは {{AUR|i3-swallow}} や {{AUR|i3-swallow-git}} パッケージを使うことで可能です。<br />
<br />
例えば、[[mpv]] のウィンドウが元のターミナルを飲み込むようにするには以下のようにします:<br />
<br />
$ i3-swallow mpv ''video.mp4''<br />
<br />
===外部ディスプレイの手動管理===<br />
<br />
[[xrandr]] を使うことで簡単にディスプレイを管理することができます。以下は i3 の設定ファイルを使って統合する例で、上記の電源管理セクションと同じように振る舞います。<br />
<br />
VGA と HDMI 出力が存在するノートパソコンでメニューを使ってオンオフを切り替えます:<br />
<br />
## Manual management of external displays<br />
# Set the shortcuts and what they do<br />
set $mode_display Ext Screen (v) VGA ON, (h) HDMI ON, (x) VGA OFF, (y) HDMI OFF<br />
mode "$mode_display" {<br />
bindsym v exec --no-startup-id xrandr --output VGA1 --auto --right-of LVDS1, mode "default"<br />
bindsym h exec --no-startup-id xrandr --output HDMI1 --auto --right-of LVDS1, mode "default"<br />
bindsym x exec --no-startup-id xrandr --output VGA1 --auto --off, mode "default"<br />
bindsym y exec --no-startup-id xrandr --output HDMI1 --auto --off, mode "default"<br />
<br />
# back to normal: Enter or Escape<br />
bindsym Return mode "default"<br />
bindsym Escape mode "default"<br />
}<br />
# Declare here the shortcut to bring the display selection menu<br />
bindsym $mod+x mode "$mode_display"<br />
<br />
オフになったディスプレイで表示していたウィンドウは自動的に他のアクティブなディスプレイに移動されます。<br />
<br />
デバイスの名前を確認したいときは、使用したいデバイスを接続して次を実行してください:<br />
<br />
$ xrandr --query<br />
<br />
利用可能なオプションについては [[xrandr]] のページや man ページ、[https://i3wm.org/docs/userguide.html i3 ユーザーガイド] や [https://www.reddit.com/r/i3wm i3 reddit の FAQ] を見てください。<br />
<br />
===タブまたはスタックによるウェブブラウジング===<br />
<br />
タブの管理はブラウザの仕事ではなく、ウィンドウマネージャの仕事だとして、故意にタブを実装していないウェブブラウザというのが存在します。<br />
<br />
[[uzbl]] など、タブのないウェブブラウザを i3 で管理するには、次の行を {{ic|~/.config/i3/config}} に追加して下さい:<br />
<br />
for_window [class="Uzbl-core"] focus child, layout stacking, focus<br />
<br />
これはスタックのウェブブラウジング用で、ウィンドウは縦に表示されます。タブブラウジングと違って、たとえブラウザのウィンドウを大量に開いていても、ウィンドウのタイトルを全て見ることができます。<br />
<br />
水平方向のタブブラウジングの方が良い場合は ('タブ')、次を使って下さい:<br />
<br />
for_window [class="Uzbl-core"] focus child, layout tabbed, focus<br />
<br />
===ワークスペース変数===<br />
<br />
i3 ではワークスペースを複数定義するので、ワークスペース変数を指定すると便利です。例えば [https://github.com/dkeg/bloat2.0/blob/master/i3config#L55]:<br />
<br />
set $WS1 term<br />
set $WS2 web<br />
set $WS3 misc<br />
set $WS4 media<br />
set $WS5 code<br />
<br />
次にワークスペースの名前を対応する変数で置き換えます:<br />
<br />
bindsym $mod+1 workspace $WS1<br />
...<br />
bindsym $mod+Shift+1 move container to workspace $WS1<br />
<br />
詳しくは [https://i3wm.org/docs/userguide.html#_changing_named_workspaces_moving_to_workspaces Changing named workspaces] を見て下さい。<br />
<br />
===フロートするダイアログを正しく扱う===<br />
<br />
デフォルトではダイアログはフロートモードで開かれることになっていますが [https://i3wm.org/docs/userguide.html#_floating]、ダイアログはタイルモードで開いてしまうこともあります。この挙動を変更するには {{pkg|xorg-xprop}} でダイアログの {{ic|WM_WINDOW_ROLE}} をチェックして適切なルールを {{ic|~/.i3/config}} に追加してください:<br />
<br />
for_window [window_role="pop-up"] floating enable<br />
for_window [window_role="task_dialog"] floating enable<br />
<br />
また、タイトルルールと正規表現を使うこともできます:<br />
<br />
for_window [title="Preferences$"] floating enable<br />
<br />
または {{ic|WM_CLASS}}:<br />
<br />
for_window [class="(?i)mplayer"] floating enable<br />
<br />
===ネットワークのダウンロード・アップロード速度をステータスバーに表示===<br />
<br />
上流の [http://code.stapelberg.de/git/i3status/tree/contrib/measure-net-speed.bash スクリプト] を編集して使うことができます。<br />
<br />
*システムに応じて両方のネットワークカードをリネームしてください ({{ic|ip addr}} を使ってください)。<br />
*{{ic|/sys/devices}} でネットワークカードを検索して適切に置き換えます:<br />
<br />
$ find /sys/devices -name ''network_interface''<br />
<br />
{{Tip|{{ic|/sys/class/net/''interface''/statistics/}} を使うことで PCI の位置に依存しなくなります。}}<br />
<br />
スクリプトを適切な場所 (例: {{ic|~/.config/i3}}) に保存して、ステータスプログラムから実行するように設定してください。<br />
<br />
=== ウィンドウの分割方向を自動的に水平/垂直に切り替える ===<br />
<br />
{{AUR|autotiling}} パッケージ は、ウィンドウの分割方向を自動的に水平/垂直に切り替えることができます。インストール後、{{ic|~/.config/i3/config}} に以下を追加し、i3 をリロードしてください。<br />
<br />
exec_always --no-startup-id ''autotiling''<br />
<br />
==トラブルシューティング==<br />
<br />
===一般===<br />
<br />
多くの場合、開発版である {{AUR|i3-git}} と {{AUR|i3status-git}} でバグは修正されているため、上流では開発版を使ってエラーが再現できるかどうか訊いてきます [https://i3wm.org/docs/debugging.html]。[[デバッグ - トレースを取得#一般]]も見てください。<br />
<br />
===i3 メッセージバーのボタンが動作しない===<br />
<br />
{{ic|i3-nagbar}} の "Edit config" などのボタンは {{ic|i3-sensible-terminal}} を呼び出します。[[#ターミナルエミュレータ|ターミナルエミュレータ]]が i3 によって認識されていることを確認してください。<br />
<br />
===タイル化されたターミナルで行の折り返しがおかしい===<br />
<br />
i3 v4.3 以上ではタイル配置したウィンドウのサイズ増加ヒントは無視されます [https://www.mail-archive.com/i3-discuss@i3.zekjur.net/msg00709.html]。これによってターミナルで行が早いところで折り返されてしまうなどの問題が生じます。解決方法としては、問題のウィンドウをフロートさせてから、もう一度タイル化してください。<br />
<br />
===マウスカーソルが待機状態のままになる===<br />
<br />
起動通知をサポートしていないスクリプやアプリケーションを起動すると、マウスカーソルは60秒間の間、ビジー/砂時計状態になります。<br />
<br />
特定のアプリケーションでこの問題を解決するには、{{ic|--no-startup-id}} パラメータを使って下さい、例えば:<br />
exec --no-startup-id ~/script<br />
bindsym $mod+d exec --no-startup-id dmenu_run<br />
<br />
このアニメーションを全てのアプリケーションで無効にするには、[[カーソルテーマ]]を見て下さい。<br />
<br />
===キーバインドが反応しない===<br />
<br />
標準のキーバインド (キーを押して実行) を使っている場合、[[スクリーンショットの取得#scrot|scrot]] などのツールが動作しないことがあります。そのようなときは、{{ic|--release}} でキーをリリースしてからコマンドを実行してください:<br />
<br />
bindsym --release Print exec --no-startup-id scrot '%Y-%m-%d$<br />
bindsym --release Shift+Print exec --no-startup-id scrot '%Y$<br />
<br />
[https://i3wm.org/docs/userguide.html#keybindings] を参照。<br />
<br />
===ティアリング===<br />
<br />
i3 は [http://bugs.i3wm.org/report/ticket/661 ダブルバッファをちゃんと実装していない] ためにティアリングやちらつきが発生することがあります。問題を修正したいときは、[[Xorg#コンポジット|コンポジットマネージャ]]を使ってみて下さい。<br />
<br />
===トレイアイコンが表示されない===<br />
<br />
{{ic|tray_output primary}} ディレクティブでは、 ''xrandr'' でプライマリ出力を設定する必要があります。明示的に出力を指定するか、ディレクティブを削除してください [https://github.com/i3/i3/issues/1144]。詳しくは [[Xrandr]] を参照。i3 のバージョン 4.12 から、i3-config-wizard によって作成されるデフォルト設定ではディレクティブが追加されないようになりました。<br />
<br />
=== Spotify のためのデフォルトのワークスペース ===<br />
<br />
Spotify ウィンドウにデフォルトのワークスペースを割り当てるには、{{ic|assign}} で標準ルートを使用することはできず、次のような {{ic|for_window}} コマンドを使用する必要があります。<br />
<br />
{{hc|~/.config/i3/config|2=<br />
...<br />
for_window [class="Spotify"] move to workspace $ws10<br />
}}<br />
<br />
{{ic|for_window}} がすでに {{ic|ws10}} にある場合にウィンドウを移動しないようにするには、代わりに {{ic|move --no-auto-back-and-forth}} を使用できます。<br />
<br />
==参照==<br />
<br />
*[http://i3wm.org 公式ウェブサイト]<br />
*[http://www.funtoo.org/I3_Tiling_Window_Manager funtoo Wiki]<br />
*[http://code.stapelberg.de/git/i3 i3 ソースコード]<br />
*[https://github.com/ashinkarov/i3-extras i3-extras] - スクリプトとパッチのコレクション<br />
*[https://github.com/acrisci/i3ipc-glib i3ipc-glib] - i3 拡張のためのライブラリ<br />
*[https://github.com/veelenga/i3ipc-ruby i3ipc-ruby] - An improved library for i3 extensions in Ruby<br />
*[http://www.j4tools.org/ j4tools] - non-official tools designed to work with i3<br />
<br />
'''Arch Linux フォーラム'''<br />
<br />
*[https://bbs.archlinux.org/viewtopic.php?id=99064 The i3 thread] - A general discussion about i3<br />
*[https://bbs.archlinux.org/viewtopic.php?id=103369 i3 desktop screenshots and config sharing]<br />
<br />
'''スクリーンキャスト'''<br />
<br />
*[https://www.youtube.com/watch?v=Wx0eNaGzAZU i3 ウィンドウマネージャの v4.1 スクリーンキャスト]<br />
*[https://www.youtube.com/watch?v=j1I63wGcvU4&index=1&list=PL5ze0DjYv5DbCv9vNEzFmP6sU7ZmkGzcf i3 window manager v4.1X screencasts]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Apache_Kafka&diff=25841
Apache Kafka
2022-06-06T15:12:40Z
<p>Hiromi-mi: パッケージ名の誤りを訂正</p>
<hr />
<div>[[Category:ネットワーク]]<br />
[[Category:開発]]<br />
[[en:Kafka]]<br />
[https://kafka.apache.org Apache Kafka] は分散型のストリーミングプラットフォームです。特徴:<br />
<br />
# 記録ストリームを公開・購読することができます。メッセージキューやエンタープライズのメッセージシステムと似ています。<br />
# フォールトトレラントな方法で記録ストリームを保存できます。<br />
# 記録を開始すると同時にストリームを処理できます。<br />
<br />
== インストール ==<br />
<br />
{{AUR|kafka}} パッケージをインストールしてください。{{ic|kafka.service}} を起動すると自動的に {{ic|zookeeper@kafka.service}} も起動します。<br />
<br />
== 使用方法 ==<br />
<br />
使用方法は [https://kafka.apache.org/quickstart#quickstart_createtopic 公式ドキュメント] を見てください。<br />
<br />
== クライアント ==<br />
<br />
* C - {{AUR|librdkafka-git}} <br />
* Python - https://github.com/dpkp/kafka-python<br />
* Php - {{AUR|php-rdkafka}} <br />
* Perl - {{AUR|perl6-pkafka}}</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Audacious&diff=25840
Audacious
2022-06-06T15:10:08Z
<p>Hiromi-mi: urlのhttps化とリンク更新</p>
<hr />
<div>[[Category:音楽]]<br />
[[cs:Audacious]]<br />
[[en:Audacious]]<br />
[[es:Audacious]]<br />
[[fr:Audacious]]<br />
[[ko:Audacious]]<br />
[[ru:Audacious]]<br />
[[zh-hans:Audacious]]<br />
[[zh-hant:Audacious]]<br />
[https://audacious-media-player.org/ Audacious] はフリーの先進的なオーディオプレーヤーです。音質と、様々な種類のオーディオコーデックをサポートすることに焦点が置かれており、さらにサードパーティ製のプラグインを使って簡単に拡張することができます。<br />
<br />
== インストール ==<br />
<br />
{{Pkg|audacious}} は[[公式リポジトリ]]から入手できます。[[pacman|pacman]] を使ってインストールしてください。<br />
音声 CD のサポートが必要な場合は、{{Pkg|libcdio}} をインストールしてください。<br />
<br />
== 設定 ==<br />
<br />
=== インターフェイス ===<br />
<br />
{{Note|Audacious 2.4 以降では GTK+ がデフォルトのインターフェイスになっています。}}<br />
Audacious は現在2つのインターフェイスを提供しています:<br />
* Winamp クラシックインターフェイス<br />
* GTK+ インターフェイス<br />
2つのインターフェイスを Audacious で切り替えることが可能です。<br />
<br />
==== Winamp スキンを追加する ====<br />
<br />
Audacious に Winamp スキンを追加するのはとても簡単です。使いたいスキンファイル (.zip, .wsz, .tgz, .tar.gz, もしくは .tar.bz2 ファイル) を {{ic|~/.local/share/audacious/Skins}} (ユーザー別) か {{ic|/usr/share/audacious/Skins}} (全てのユーザーに影響を与えます) のどちらかにコピーするだけで、''Preferences'' の ''Skinned Interface'' からスキンを選択することができます。また、スキンファイルを利用可能なスキンのリストに直接ドラッグする方法もあります。<br />
<br />
== ヒントとテクニック ==<br />
<br />
=== Audtool ===<br />
<br />
Audacious には Audtool という名前のパワフルな管理ツールが付いています。Audtool を使うことで情報を取得したりプレイヤーを操作することが可能です。<br />
<br />
例えば、現在再生中の曲名・アーティスト名を取得するには、以下のコマンドを実行してください:<br />
$ audtool current-song<br />
$ audtool current-song-tuple-data artist<br />
再生を操作したり、プレイリスト・イコライザー・メインウィンドウを扱う機能も存在します。全てのオプションを表示するには、次を見て下さい:<br />
$ audtool --help<br />
<br />
=== MP3 の問題 ===<br />
<br />
{{Pkg|mpg123}} をインストールしてください。<br />
<br />
== トラブルシューティング ==<br />
<br />
=== Audacious がファイルマネージャとして設定されてしまう ===<br />
<br />
[[ファイルマネージャの機能#ディレクトリがファイルマネージャで開かれない]]を参照。<br />
<br />
== 参照 ==<br />
<br />
* [https://audacious-media-player.org/ Audacious 公式サイト]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Mullvad&diff=25741
Mullvad
2022-06-01T10:04:10Z
<p>Hiromi-mi: パッケージ名の変更に追従</p>
<hr />
<div>[[Category:VPN プロバイダー]]<br />
[[en:Mullvad]]<br />
[https://mullvad.net/en/ Mullvad] はスウェーデンを拠点に [[OpenVPN]] および [[WireGuard]] サーバーを運営しているオペレータの VPN サービスです。独自の [https://mullvad.net/download/ GUI クライアント] を用意しており {{AUR|mullvad-vpn}} パッケージでインストールすることができますが、以下で説明しているように OpenVPN の設定ファイルで使うこともできます。<br />
<br />
== OpenVPN の設定 ==<br />
<br />
まず {{Pkg|openvpn}} と {{Pkg|openresolv}} パッケージをインストールしてください。そして [https://www.mullvad.net/download/config/ Mullvad のウェブサイト] ("other platforms" タブ) から OpenVPN の設定ファイルをダウンロードして、ダウンロードしたファイルを {{ic|/etc/openvpn/client/}} に解凍してください。<br />
<br />
{{ic|mullvad_linux.conf}} は [[systemd]] のサービスで使うために短い名前に変更してください:<br />
<br />
# mv /etc/openvpn/client/mullvad_linux.conf /etc/openvpn/client/mullvad.conf<br />
<br />
Mullvad が提供しているネームサーバーを使用するには、OpenVPN の接続開始・停止時に [[OpenVPN#アップデート resolv-conf スクリプト|update-resolv-conf スクリプト]]が呼び出されるようにして、適切な IP アドレスが [[resolv.conf]] に書き込まれるようにします。スクリプトは Mullvad の設定パッケージに含まれていますが、{{ic|/etc/openvpn/}} に移動して Mullvad の設定ファイルに指定されているパスと一致させる必要があります:<br />
<br />
# mv /etc/openvpn/client/update-resolv-conf /etc/openvpn/<br />
<br />
スクリプトは {{aur|openvpn-update-resolv-conf}}{{Broken package link|パッケージが存在しません}} パッケージでアップデートすることができ、DNS 漏れの修正も含まれています。<br />
<br />
設定したら {{ic|openvpn-client@mullvad.service}} で VPN 接続を[[有効化|管理]]することができます。サービスが {{ic|Cannot open TUN/TAP dev /dev/net/tun: No such device <nowiki>(errno=19)</nowiki>}} というエラーで起動に失敗する場合、システムを再起動して OpenVPN が適切なネットワークデバイスを作成できるようにしてください。<br />
<br />
== DNS リーク ==<br />
<br />
デフォルトの Mullvad の設定では DNS 漏れが起こる可能性があり、VPN を使用する必要がある場合としてはプライバシー保護の観点で望ましくありません。Mullvad の GUI クライアントには "Stop DNS leaks" という名前のオプションが存在し、システム設定から全ての DNS サーバーの IP を除去して Mullvad が運営している (ログを取っていないという) DNS サーバーに置き換えます。OpenVPN のみ使っている場合でも [[resolv.conf]] を設定して [https://www.mullvad.net/guides/dns-leaks/ ウェブサイト] に書かれている Mullvad の DNS サーバーの IP アドレスのみ使用することで同じことができます。<br />
<br />
[https://github.com/masterkorp/openvpn-update-resolv-conf openvpn-update-resolv-conf] の resolv.conf アップデートスクリプトは {{ic|resolvconf}} コマンドの実行時にインターフェイススイッチ {{ic|-x}} を使って漏洩を防止していますが、[https://github.com/masterkorp/openvpn-update-resolv-conf/issues/18 スクリプトの GitHub の issue ページ] にあるように、ローカルネットワークアドレスも Mullvad の DNS サーバーで解決しようとするため、別の形の DNS リークが発生する可能性があります。<br />
<br />
== 参照 ==<br />
<br />
* [https://github.com/mullvad/mullvadvpn-app Mullvad クライアントのソースコード]<br />
* [https://mullvad.net/en/faq/ Mullvad FAQ]<br />
<!-- * [[vopono]] --></div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Mullvad&diff=25740
Mullvad
2022-06-01T10:01:09Z
<p>Hiromi-mi: /* DNS リーク */ /* 参照 */ URL修正及び参照追加</p>
<hr />
<div>[[Category:VPN プロバイダー]]<br />
[[en:Mullvad]]<br />
[https://mullvad.net/ Mullvad] はスウェーデンを拠点に [[OpenVPN]] サーバーを運営しているオペレータの VPN サービスです。独自の [https://mullvad.net/download/ GUI クライアント] を用意しており {{AUR|mullvad}}{{Broken package link|パッケージが存在しません}} パッケージでインストールすることができますが、以下で説明しているように OpenVPN の設定ファイルで使うこともできます。<br />
<br />
== OpenVPN の設定 ==<br />
<br />
まず {{Pkg|openvpn}} と {{Pkg|openresolv}} パッケージをインストールしてください。そして [https://www.mullvad.net/download/config/ Mullvad のウェブサイト] ("other platforms" タブ) から OpenVPN の設定ファイルをダウンロードして、ダウンロードしたファイルを {{ic|/etc/openvpn/client/}} に解凍してください。<br />
<br />
{{ic|mullvad_linux.conf}} は [[systemd]] のサービスで使うために短い名前に変更してください:<br />
<br />
# mv /etc/openvpn/client/mullvad_linux.conf /etc/openvpn/client/mullvad.conf<br />
<br />
Mullvad が提供しているネームサーバーを使用するには、OpenVPN の接続開始・停止時に [[OpenVPN#アップデート resolv-conf スクリプト|update-resolv-conf スクリプト]]が呼び出されるようにして、適切な IP アドレスが [[resolv.conf]] に書き込まれるようにします。スクリプトは Mullvad の設定パッケージに含まれていますが、{{ic|/etc/openvpn/}} に移動して Mullvad の設定ファイルに指定されているパスと一致させる必要があります:<br />
<br />
# mv /etc/openvpn/client/update-resolv-conf /etc/openvpn/<br />
<br />
スクリプトは {{aur|openvpn-update-resolv-conf}}{{Broken package link|パッケージが存在しません}} パッケージでアップデートすることができ、DNS 漏れの修正も含まれています。<br />
<br />
設定したら {{ic|openvpn-client@mullvad.service}} で VPN 接続を[[有効化|管理]]することができます。サービスが {{ic|Cannot open TUN/TAP dev /dev/net/tun: No such device <nowiki>(errno=19)</nowiki>}} というエラーで起動に失敗する場合、システムを再起動して OpenVPN が適切なネットワークデバイスを作成できるようにしてください。<br />
<br />
== DNS リーク ==<br />
<br />
デフォルトの Mullvad の設定では DNS 漏れが起こる可能性があり、VPN を使用する必要がある場合としてはプライバシー保護の観点で望ましくありません。Mullvad の GUI クライアントには "Stop DNS leaks" という名前のオプションが存在し、システム設定から全ての DNS サーバーの IP を除去して Mullvad が運営している (ログを取っていないという) DNS サーバーに置き換えます。OpenVPN のみ使っている場合でも [[resolv.conf]] を設定して [https://www.mullvad.net/guides/dns-leaks/ ウェブサイト] に書かれている Mullvad の DNS サーバーの IP アドレスのみ使用することで同じことができます。<br />
<br />
[https://github.com/masterkorp/openvpn-update-resolv-conf openvpn-update-resolv-conf] の resolv.conf アップデートスクリプトは {{ic|resolvconf}} コマンドの実行時にインターフェイススイッチ {{ic|-x}} を使って漏洩を防止していますが、[https://github.com/masterkorp/openvpn-update-resolv-conf/issues/18 スクリプトの GitHub の issue ページ] にあるように、ローカルネットワークアドレスも Mullvad の DNS サーバーで解決しようとするため、別の形の DNS リークが発生する可能性があります。<br />
<br />
== 参照 ==<br />
<br />
* [https://github.com/mullvad/mullvadvpn-app Mullvad クライアントのソースコード]<br />
* [https://mullvad.net/en/faq/ Mullvad FAQ]<br />
<!-- * [[vopono]] --></div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=GNOME&diff=24727
GNOME
2022-03-24T20:20:57Z
<p>Hiromi-mi: /* Wayland における GNOME アプリケーション */ 壊れたURLリンクを修正</p>
<hr />
<div>[[Category:GNOME]]<br />
[[cs:GNOME]]<br />
[[de:GNOME]]<br />
[[en:GNOME]]<br />
[[es:GNOME]]<br />
[[fr:GNOME]]<br />
[[it:GNOME]]<br />
[[pl:GNOME]]<br />
[[pt:GNOME]]<br />
[[ru:GNOME]]<br />
[[sr:GNOME]]<br />
[[th:GNOME]]<br />
[[tr:Gnome Masaüstü Ortamı]]<br />
[[zh-hans:GNOME]]<br />
[[zh-hant:GNOME]]<br />
{{Related articles start}}<br />
{{Related|GNOME/ヒントとテクニック}}<br />
{{Related|GNOME/トラブルシューティング}}<br />
{{Related|デスクトップ環境}}<br />
{{Related|ディスプレイマネージャ}}<br />
{{Related|ウィンドウマネージャ}}<br />
{{Related|GTK+}}<br />
{{Related|GDM}}<br />
{{Related|GNOME Files}}<br />
{{Related|Gedit}}<br />
{{Related|GNOME Web}}<br />
{{Related|Evolution}}<br />
{{Related|GNOME Flashback}}<br />
{{Related|GNOME Keyring}}<br />
{{Related|Evince}}<br />
{{Related|Cinnamon}}<br />
{{Related|MATE}}<br />
{{Related|公式リポジトリ#&#91;gnome-unstable&#93;}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:ja:GNOME|GNOME]] (/(ɡ)noʊm/) は、シンプルで使いやすいことを目指した [[デスクトップ環境]] です。[[Wikipedia:ja:GNOMEプロジェクト|GNOME プロジェクト]] によって設計され、すべてフリーでオープンソースのソフトウェアで構成されています。デフォルトのディスプレイは [[Xorg]] の代わりに [[Wayland]] であり、利用可能なセッションは以下の通りです。<br />
<br />
* '''GNOME ''' は、GNOME Shell を [[Wayland]] 上で動作させます。伝統的な X アプリケーションは Xwayland を通して実行され、デフォルトの選択です。<br />
* '''GNOME Classic''' は "[https://help.gnome.org/users/gnome-help/stable/gnome-classic.html 伝統的なデスクトップ体験]" を提供します。(GNOME 2 に似たインターフェイスで) [https://web.archive.org/web/20190503163814/http://www.worldofgnome.org/welcome-to-gnome-3-8-flintstones-mode/ 特定の拡張子や値] を使用します。したがって、これは GNOME Shell をカスタマイズしたものであり、真の意味で別個のモードと言うわけではありません。<br />
* '''GNOME on Xorg''' は [[Xorg]] を使って GNOME Shell を実行します。<br />
<br />
== インストール ==<br />
<br />
GNOME には2つのグループが存在します:<br />
<br />
* {{Grp|gnome}} には GNOME デスクトップのベースと [https://wiki.gnome.org/Apps アプリケーション] のサブセットが含まれています。<br />
* {{Grp|gnome-extra}} にはアーカイブマネージャ・ディスクマネージャ・[[Gedit|テキストエディタ]]・ゲームなどの追加の GNOME アプリケーションが含まれています。このグループは {{Grp|gnome}} グループを必要とします。<br />
<br />
ベースのデスクトップは [[Wikipedia:Mutter_(software)|Mutter]] ウィンドウマネージャのプラグインである [[Wikipedia:GNOME_Shell|GNOME Shell]] から出来ています。GNOME Shell は {{Pkg|gnome-shell}} で別個にインストールすることが可能です。<br />
<br />
{{Note|''mutter'' はデスクトップのコンポジットマネージャとして動作します。ハードウェアグラフィックアクセラレーションを使って画面のちらつきを抑えます。GNOME セッションマネージャはあなたのビデオドライバが GNOME Shell を動かすことができるか自動で検知して、場合によっては ''llvmpipe'' によるソフトウェアレンダリングを利用します。}}<br />
<br />
不安定なリリースも使用できます。[[公式リポジトリ#gnome-unstable]] を参照してください。<br />
<br />
== GNOME の起動 ==<br />
<br />
GNOME は[[ディスプレイマネージャ]]を使ってグラフィカルに起動することも、コンソールから手動で起動することもできます。デスクトップとの統合を高めるために、[[GDM]] (GNOME ディスプレイマネージャ) を使うことが推奨されています。<br />
<br />
{{note|GNOME における画面ロックのサポートは GDM によって提供されています。GDM を選ばなかった場合は他の画面ロックプログラムを使う必要があります。[[アプリケーション一覧/セキュリティ#スクリーンロック]]を参照。}}<br />
<br />
=== グラフィカル ===<br />
<br />
ディスプレイマネージャのセッションメニューから ''GNOME'', ''GNOME Classic'', ''GNOME on Xorg'' のどれかを選択して下さい。<br />
<br />
=== 手動 ===<br />
<br />
==== Xorg セッション ====<br />
<br />
* GNOME on Xorg セッションの場合は、{{ic|~/.xinitrc}} ファイルに以下を追加します (詳細は [https://gitlab.gnome.org/GNOME/gtk/issues/1390#note_344758] を参照してください。) {{bc|<nowiki><br />
export XDG_SESSION_TYPE=x11<br />
export GDK_BACKEND=x11<br />
exec gnome-session<br />
</nowiki>}}<br />
* GNOME Classic セッションの場合は、{{ic|~/.xinitrc}} ファイルに以下を追加してください。{{bc|<nowiki><br />
export XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME<br />
export GNOME_SHELL_SESSION_MODE=classic<br />
exec gnome-session<br />
</nowiki>}}<br />
<br />
{{ic|~/.xinitrc}} ファイルを編集した後、 {{ic|startx}} コマンドで GNOME を起動できます (logind セッションの保持など、その他の詳細については [[xinitrc]] を参照してください。) {{ic|~/.xinitrc}} ファイルを設定した後、 {{ic|.bash_profile}} に追加することで、例えば tty1 で [[xinit#ログイン時に X を自動起動|ログイン時に X を自動起動]] を行うように設定することも可能です。<br />
<br />
{{bc|<nowiki><br />
if [[ -z $DISPLAY && $(tty) == /dev/tty1 ]]; then<br />
XDG_SESSION_TYPE=x11 GDK_BACKEND=x11 exec startx<br />
fi<br />
</nowiki>}}<br />
<br />
==== Wayland セッション ====<br />
<br />
{{Note|まだ [[Wayland]] に移植されていないアプリケーションを実行するには、まだ X サーバが必要です。Qt のような特定のグラフィックライブラリを使用するアプリケーションは、環境変数を設定することで強制的に Wayland を使用させることができます。詳しくは [[Wayland#GUI libraries]] をご覧ください。}}<br />
<br />
手動で Wayland セッションを開始するには {{ic|1=XDG_SESSION_TYPE=wayland dbus-run-session gnome-session}} を使ってください。あるいは、任意の利用可能な tty から wayland フラグを付けて {{ic|gnome-shell}} を直接呼び出すこともできます。<br />
<br />
$ gnome-shell --wayland<br />
<br />
手動で Gnome を起動する場合、{{ic|gdm}} は '''不要''' であることに注意してください。(その結果、付随する {{ic|gdm.service}} も) 稼働しません、したがって、より包括的な {{ic|gnome}} グループに含まれるいくつかのパッケージからなる Gnome の (おそらく非常に) 最小インストールで、個人の好みに合わせてアクセスすることも可能です。<br />
<br />
tty1 にログインして起動するには、前のコードの行を {{ic|.bash_profile}} に追加してください。Firefox と QT アプリケーションは {{ic|XDG_SESSION_TYPE}} を尊重しないので、それらのための変数も追加してください。<br />
<br />
{{bc|<nowiki><br />
if [[ -z $DISPLAY && $(tty) == /dev/tty1 && $XDG_SESSION_TYPE == tty ]]; then<br />
MOZ_ENABLE_WAYLAND=1 QT_QPA_PLATFORM=wayland XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session<br />
fi<br />
</nowiki>}}<br />
<br />
=== Wayland における GNOME アプリケーション ===<br />
<br />
''GNOME'' セッションを使用すると、GNOME アプリケーションは Wayland を使用して実行されます。デバッグの場合は、https://docs.gtk.org/gtk3/running.html と https://docs.gtk.org/gtk4/running.html にオプションと環境変数に一覧表示します。<br />
<br />
== ナビゲーション ==<br />
<br />
GNOME shell の効果的な使い方を学ぶには、[https://wiki.gnome.org/Projects/GnomeShell/CheatSheet GNOME Shell Cheat Sheet] を読んでください。GNOME shell の機能とキーボードショートカットを紹介しています。機能にはタスクの切り替え、キーボードの使用、ウィンドウの制御、パネル、概要モードなどが含まれます。ショートカットのいくつかを紹介します。<br />
<br />
* {{ic|Super}} + {{ic|m}}: メッセージトレイを表示<br />
* {{ic|Super}} + {{ic|a}}: アプリケーションメニューを表示<br />
* {{ic|Alt-}} + {{ic|Tab}}: アクティブなアプリケーションを切り替え<br />
* {{ic|Alt-}} + {{ic|`}} (US キーボードレイアウトなら {{ic|Tab}} の上のキー): フォアグラウンドのアプリケーションのウィンドウの切り替え<br />
* {{ic|Alt}} + {{ic|F2}} を押してから {{ic|r}} または {{ic|restart}}: シェルに問題が発生した場合にシェルを再起動 (Wayland モードでは機能しません)<br />
<br />
その他のショートカットについては、[https://help.gnome.org/users/gnome-help/stable/keyboard-nav.html キーボードナビゲーション] を参照してください。<br />
<br />
{{Tip|{{ic|Alt+Tab}} で現在のワークスペースでのみアプリケーションを切り替えるには、{{ic|current-workspace-only}} を {{ic|true}} に設定してください。<br />
<br />
$ gsettings set org.gnome.shell.app-switcher current-workspace-only true<br />
}}<br />
<br />
== アプリケーションの旧名 ==<br />
<br />
{{Note|GNOME プログラムの中には名前の変更が行われて、ドキュメントやダイアログでのアプリケーション名は変更されたのに実行可能ファイルの名前は変わっていないものがあります。以下の表ではそのようなアプリケーションを挙げています。}}<br />
<br />
{{Tip|アプリケーションの旧名を Shell の検索バーで検索すると探したいアプリケーションが出て来ます。例えば、''nautilus'' を検索すると ''Files'' が表示されます。}}<br />
<br />
{| class="wikitable"<br />
! 新名<br />
! 旧名<br />
|-<br />
| [[GNOME Files|Files]]<br />
| Nautilus<br />
|-<br />
| [[GNOME Web|Web]]<br />
| Epiphany<br />
|-<br />
| Videos<br />
| Totem<br />
|-<br />
| Main Menu<br />
| Alacarte<br />
|-<br />
| [[Evince|Document Viewer]]<br />
| Evince<br />
|-<br />
| Disk Usage Analyser<br />
| Baobab<br />
|-<br />
| Image Viewer<br />
| EoG (Eye of GNOME)<br />
|-<br />
| [[GNOME Keyring|Passwords and Keys]]<br />
| Seahorse<br />
|-<br />
| GNOME Translation Editor<br />
| Gtranslator<br />
|}<br />
<br />
== 設定 ==<br />
<br />
GNOME デスクトップは設定データベースバックエンド (DConf) を使ってシステムやアプリケーションの設定を保存しています。デスクトップにはデフォルト設定があり、アプリケーションがインストールされるとデータベースに設定が追加されます。基本的な設定は GNOME のシステム設定パネル (''gnome-control-center'') や個別のアプリケーションの設定から行うことができます。また、''gsettings'' や ''dconf'' コマンドラインツールを使って DConf データベースを直接設定することもできます。コマンドラインツールを使えば、ユーザーインターフェイスからは弄ることができない設定を変えることが可能です。<br />
<br />
GNOME 3.24 以前までは設定は GNOME 設定デーモンによって適用されていました。GNOME セッションの外からデーモンを起動することもでき、以下のコマンドを実行することで GNOME 以外の環境でも GNOME の設定を適用することが可能でした:<br />
$ nohup /usr/lib/gnome-settings-daemon/gnome-settings-daemon > /dev/null &<br />
<br />
GNOME 3.24 から GNOME 設定デーモンは複数の設定プラグイン ({{ic|/usr/lib/gnome-settings-daemon/gsd-*}}) に置き換わっています。設定プラグインは {{ic|/etc/xdg/autostart}} にあるデスクトップファイルによって制御されます (org.gnome.SettingsDaemon.*.desktop)。GNOME セッション以外でプラグインを実行するには、プラグインの[[デスクトップエントリ]]を {{ic|~/.config/autostart}} にコピー・編集してください。<br />
<br />
設定は基本的にユーザーごとに行われます。以下のセクションではマルチユーザーシステム用に設定テンプレートを作成する方法については扱っていません。<br />
<br />
=== システム設定 ===<br />
<br />
==== カラー ====<br />
<br />
{{ic|colord}} デーモンはディスプレイの EDID を読み取って適切なカラープロファイルを展開します。大抵のカラープロファイルは正確なので設定は必要ありませんが、場合によっては間違っていることがあり (特にディスプレイが旧型の場合)、その場合カラープロファイルを {{ic|~/.local/share/icc/}} に配置して使用することができます。<br />
<br />
==== 夜間モード ====<br />
<br />
GNOMEには、[[Redshift]] と同様のブルーライトフィルターが組み込まれています。 ディスプレイ設定メニューから、夜間モードを有効にする時間を有効にしてカスタマイズできます。 さらに、次の {{pkg|dconf}} 設定を使用してケルビン温度を微調整できます。ここで、5000 は値の例です。<br />
<br />
$ gsettings set org.gnome.settings-daemon.plugins.color night-light-temperature 5000<br />
<br />
==== 日付と時刻 ====<br />
<br />
システムに [[Network Time Protocol daemon]] が設定されている場合、GNOME でも適用されます。必要であれば、メニューから同期を手動に設定することも可能です。<br />
<br />
上部のバーに日付を表示するには、次を実行:<br />
<br />
$ gsettings set org.gnome.desktop.interface clock-show-date true<br />
<br />
さらに、上部のバーのカレンダーに週番号を表示するには、次を実行:<br />
$ gsettings set org.gnome.desktop.calendar show-weekdate true<br />
<br />
==== デフォルトアプリケーション ==== <br />
<br />
GNOME を初めてインストールしたとき、特定のプロトコルについて間違ったアプリケーションが開かれてしまうことがあります。例えば、動画を開いた時に [[VLC]] ではなく ''totem'' が起動してしまう、など。プロトコルによってはアプリケーションの関連付けをシステム設定から設定することができます: ''System'' > ''Details'' > ''Default applications''。<br />
<br />
他のプロトコルの設定については[[デフォルトアプリケーション]]を見て下さい。<br />
<br />
==== マウスとタッチパッド ====<br />
<br />
''gnome-control-center'' で以下の設定をすることでタッチパッドが邪魔にならないようにできます:<br />
<br />
* タイピング中にタッチパッドを無効にする<br />
* スクロールを無効にする<br />
* タップでクリックを無効にする<br />
<br />
使用しているデバイスによっては、他の設定が使える場合もありますが、デフォルトの GUI では設定ができません。例えば、タッチパッドに以下のような {{ic|click-method}} の設定がある場合:<br />
{{hc|$ gsettings range org.gnome.desktop.peripherals.touchpad click-method|<br />
enum<br />
'default'<br />
'none'<br />
'areas'<br />
'fingers'}}<br />
手動で設定するには:<br />
$ gsettings set org.gnome.desktop.peripherals.touchpad click-method 'fingers'<br />
もしくは ''gnome-tweak-tool'' を使って設定することも可能です。<br />
<br />
{{Note|1=GNOME は [[Synaptics タッチパッド|Synaptics]] ドライバーをサポートしていません。[[libinput]] を使ってください。[https://bugzilla.gnome.org/show_bug.cgi?id=764257#c12 こちらのバグレポート] を参照。}}<br />
<br />
==== ネットワーク ====<br />
<br />
[[NetworkManager]] はシェルからネットワークの設定を行える GNOME プロジェクトのネイティブツールです。{{pkg|networkmanager}} パッケージをインストールして {{ic|NetworkManager.service}} ユニットを[[有効化]]してください。<br />
<br />
他の[[アプリケーション一覧/インターネット#ネットワーク管理|ネットワークマネージャ]]を使うこともできますが、NetworkManager はシェルのネットワーク設定と完全に統合されており、インジケータアプレット {{Pkg|network-manager-applet}} も存在します (GNOME の必須パッケージではありません)。<br />
<br />
==== オンラインアカウント ====<br />
<br />
GNOME のメッセージアプリケーション {{AUR|empathy}} のバックエンドとシステム設定パネルの GNOME オンラインアカウントセクションは別のグループに含まれています: {{Grp|telepathy}}。[[GNOME/トラブルシューティング#Empathy や GNOME オンラインアカウントにアカウントを追加できない]]を見て下さい。[[ownCloud]] などのオンラインアカウントを [[GNOME Files]] や GNOME Documents といった GNOME アプリケーションで使用するには {{Pkg|gvfs-goa}} をインストールする必要があります [https://wiki.gnome.org/ThreePointSeven/Features/Owncloud]。<br />
<br />
==== 検索 ====<br />
<br />
GNOME シェルには検索機能が存在し、{{ic|Super}} キーを押してから入力することですぐにアクセスできます。{{Pkg|tracker}} パッケージは {{Grp|gnome}} グループの一部としてデフォルトでインストールされ、インデックス作成アプリケーションとメタデータデータベースが含まれています。''検索とインデックス生成''メニューアイテムから設定することができ、監視ステータスは ''tracker-control'' で制御できます。ユーザーがログインしたときに ''gnome-session'' によって自動的に起動しますが、{{ic|tracker-control -s}} を実行することで手動でインデックス作成を開始することもできます。検索の設定は''システム設定''パネルからも行えます。<br />
<br />
Tracker のデータベースは ''tracker-sparql'' コマンドを使うことで確認できます。詳しくは {{man|1|tracker-sparql}} を参照。<br />
<br />
=== 高度な設定 ===<br />
<br />
[[GTK+]] や[[ウィンドウマネージャ]]のテーマを変更したりする設定オプションは GNOME システム設定パネル (''gnome-control-center'') には存在しません。それらの設定を変更したいときは GNOME Tweak Tool ({{Pkg|gnome-tweak-tool}}{{Broken package link|置換パッケージ: {{Pkg|gnome-tweaks}}}}) を使うことができます。多くの設定を変更できる便利なグラフィカルツールです。<br />
<br />
また、[https://developer.gnome.org/dconf/unstable/dconf-editor.html ''dconf-editor''] (グラフィカルな DConf 設定ツール) や [https://developer.gnome.org/gio/stable/GSettings.html ''gsettings''] コマンドラインツールを使って (DConf データベースに保存されている) GNOME の設定を変更することもできます。GNOME Tweak Tool は GUI の設定全てが行えるわけではありません。以下のセクションで説明している設定は GNOME Tweak Tool では行えないことがあります。<br />
<br />
==== 外観 ====<br />
<br />
===== テーマ =====<br />
<br />
GNOME はデフォルトで Adwaita を使用します。Adwaita-dark を GTK 2 アプリケーションにのみ適用するには、以下のシンボリックリンクを使用します。<br />
<br />
$ ln -s /usr/share/themes/Adwaita-dark ~/.themes/Adwaita<br />
<br />
{{Note|Adwaita-dark テーマは {{Pkg|gnome-themes-extra}} によって提供されており、GNOME の最小インストールではインストールされない可能性があります。}}<br />
<br />
新しいテーマを選択する (適切なディレクトリに移動する) には、以下の GNOME Tweaks または GSettings コマンドを使用してください。<br />
<br />
GTK テーマの場合<br />
<br />
$ gsettings set org.gnome.desktop.interface gtk-theme ''theme-name''<br />
<br />
アイコンテーマの場合<br />
<br />
$ gsettings set org.gnome.desktop.interface icon-theme ''theme-name''<br />
<br />
{{Note|ウィンドウマネージャのテーマは GTK のテーマに従います。{{ic|org.gnome.desktop.wm.preferences theme}} を使うことは非推奨で無視されます。}}<br />
<br />
[[GTK#テーマ]] と [[アイコン#手動]] を見て下さい。<br />
<br />
===== ウィンドウマネージャのテーマ =====<br />
<br />
ウィンドウマネージャのテーマは GTK+ のテーマが使われます。{{ic|org.gnome.desktop.wm.preferences theme}} は廃止され、設定されていても無視されます。<br />
<br />
===== タイトルバーの高さ =====<br />
<br />
{{Note|この設定を使用すると GNOME ターミナルや Chromium のタイトルバーが縮みますが、Nautilus のタイトルバーの高さは変わりません。}}<br />
<br />
{{hc|~/.config/gtk-3.0/gtk.css|<br />
headerbar.default-decoration {<br />
padding-top: 0px;<br />
padding-bottom: 0px;<br />
min-height: 0px;<br />
font-size: 0.6em;<br />
}<br />
<br />
headerbar.default-decoration button.titlebutton {<br />
padding: 0px;<br />
min-height: 0px;<br />
}<br />
}}<br />
<br />
詳しくは [https://ask.fedoraproject.org/en/question/10035/shrink-title-bar/?answer=86149#post-id-86149] を参照。<br />
<br />
===== タイトルバーのボタンの順番 =====<br />
<br />
GNOME のウィンドウマネージャ (Mutter, Metacity) の順番を設定するには:<br />
$ gsettings set org.gnome.desktop.wm.preferences button-layout ':minimize,maximize,close'<br />
<br />
{{Tip|コロンはウィンドウボタンが表示されるタイトルバーの縁を示しています。}}<br />
<br />
===== 最大化時にタイトルバーを非表示 =====<br />
<br />
*{{AUR|gnome-shell-extension-pixel-saver}} または {{AUR|gnome-shell-extension-pixel-saver-git}} をインストールしてください。最大化されたウィンドウのタイトルバーはアクティビティバーに統合されます。<br />
<br />
*{{AUR|mutter-hide-legacy-decorations}} を[[インストール]]してください。ウィンドウマネージャのデフォルト設定を変更して、(ヘッダバーがない) レガシーなアプリケーションを最大化したりタイル化させたときに自動的にタイトルバーを非表示にします。<br />
<br />
===== GNOME シェルのテーマ =====<br />
<br />
GNOME Shell 自体のテーマも設定することができます。Shell のテーマを使うには、まず {{Pkg|gnome-shell-extensions}} パッケージをインストールしてください。そして GNOME Tweak Tool か through the [https://extensions.gnome.org GNOME Shell Extensions] のウェブページから ''User Themes'' 拡張を有効にしてください。シェルのテーマは GNOME Tweak Tool を使ってロード・選択することができます。<br />
<br />
GNOME Shell のテーマは [https://aur.archlinux.org/packages.php?O=0&K=gnome-shell-theme&do_Search=Go&PP=50&SB=v&SO=d AUR] に多数存在します。<br />
<br />
Shell のテーマは [http://gnome-look.org/ gnome-look.org] からダウンロードすることも可能です。<br />
<br />
===== AppIndicators/Top bar アイコン =====<br />
<br />
AppIndicator を有効にするには、バックグラウンドで動作している特定のアプリケーションを制御/監視するのに便利な {{Pkg|gnome-shell-extension-appindicator}} または {{AUR|gnome-shell-extension-appindicator-git}} をインストールして [[#Navigation|restart the GNOME Shell]] 、次に GNOME Extensions アプリケーションで有効にするか {{ic|$ gnome-extensions enable $(gnome-extensions list {{!}} grep -m 1 appindicatorsupport)}} を実行します。<br />
<br />
==== アプリケーショングリッド内のフォルダー ====<br />
<br />
{{Tip|[https://github.com/prurigro/gnome-catgen gnome-catgen] ({{AUR|gnome-catgen-git}}) スクリプトを使うことで {{ic|~/.local/share/applications-categories}} に各カテゴリの名前のファイルを作成してデスクトップファイルのリストを記述することでフォルダを管理することができるようになります。任意で、Ctrl+C でアプリを終了する前にフォルダに入っていないアプリを切り替えたりカテゴリを入力することができます。}}<br />
<br />
''dconf-editor'' を開いて {{ic|org.gnome.desktop.app-folders}} まで行ってから {{ic|folder-children}} の値を設定してください。フォルダの名前をカンマで区切ります:<br />
<br />
['Utilities', 'Sundry']<br />
<br />
{{ic|gsettings}} を使ってアプリケーションを追加して下さい:<br />
<br />
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ apps "['alacarte.desktop', 'dconf-editor.desktop']"<br />
<br />
上記のコマンドでアプリケーション {{ic|alacarte.desktop}} と {{ic|dconf-editor.desktop}} が Sundry フォルダに追加されます。{{ic|org.gnome.desktop.app-folders.folders.Sundry}} というフォルダも作成されます。<br />
<br />
フォルダに名前を付けるには (名前が存在しない場合アプリケーションの一番上に表示されます):<br />
<br />
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ name "Sundry"<br />
<br />
(アプリケーションの ''.desktop'' ファイルで指定されている) カテゴリによってアプリケーションを分けることもできます:<br />
<br />
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ categories "['Office']"<br />
<br />
特定のフォルダでカテゴリに入っている特定のアプリケーションを表示しないようにするには、除外を設定:<br />
<br />
$ gsettings set org.gnome.desktop.app-folders.folder:/org/gnome/desktop/app-folders/folders/Sundry/ excluded-apps "['libreoffice-draw.desktop']"<br />
<br />
詳しくは [https://git.gnome.org/browse/gsettings-desktop-schemas/tree/schemas/org.gnome.desktop.app-folders.gschema.xml.in.in app-folders schema] を参照してください。<br />
<br />
==== 自動起動 ====<br />
<br />
GNOME は [[XDG Autostart]] を実装しています。<br />
<br />
{{Pkg|gnome-tweaks}} で自動起動のエントリを管理することができます。<br />
<br />
{{Tip|TweaksのStartup Applications セクションにあるプラス記号ボタンが反応しない場合、ターミナルから以下のコマンドで Tweaks を起動してみてください。{{ic|gnome-tweaks}} を実行してみてください。以下の [https://bbs.archlinux.org/viewtopic.php?pid&#61;1413631#p1413631フォーラムスレッド] を参照してください。}}<br />
<br />
{{Note|非推奨の ''gnome-session-properties'' ダイアログは {{AUR|gnome-session-properties}} パッケージを [[インストール]] して追加することができます。gnome-tweaks と比べて、システム全体で自動起動するアプリを無効にすることもできます}}<br />
<br />
==== デスクトップ ====<br />
<br />
===== デスクトップアイコン =====<br />
<br />
GNOME 3.28 までは、デスクトップ上のアイコンは [[GNOME Files|Files]] によって提供されており、アイコンを含むデスクトップ上に透明なウィンドウを描画していました。GNOME 3.28 からはこの機能が削除され、GNOME でデスクトップ・アイコンを利用することはできなくなりました。可能な回避策としては、[[Nemo]] を使うことです。(Files のフォークで、まだデスクトップアイコンの機能があります) または {{AUR|gnome-shell-extension-desktop-icons}} をインストールすると、GNOME 3.26 とそれ以前で利用できたデスクトップアイコンの機能が再現されますが、いくつかの小さな違いがあります。詳しくは次の [https://bbs.archlinux.org/viewtopic.php?id=235633 Arch forum thread] を見て下さい。<br />
<br />
===== ロック画面と背景 =====<br />
<br />
デスクトップやロック画面の背景を設定するときは、Pictures タブには {{ic|/home/''username''/Pictures}} フォルダ内の画像しか表示されないので注意してください。このフォルダの外にある画像を使いたいときは、以下のコマンドを使用して下さい。<br />
<br />
デスクトップの背景:<br />
$ gsettings set org.gnome.desktop.background picture-uri 'file:///path/to/my/picture.jpg'<br />
<br />
ロック画面の背景:<br />
$ gsettings set org.gnome.desktop.screensaver picture-uri 'file:///path/to/my/picture.jpg'<br />
<br />
===== 左上のホットコーナーを無効にする =====<br />
<br />
GNOME 3.34 から、以下の方法で無効にすることができます。<br />
<br />
$ gsettings set org.gnome.desktop.interface enable-hot-corners false<br />
<br />
または {{Pkg|gnome-tweaks}} 経由で、''トップバー > アクティビティ概要 ''ホットコーナー'' の中にあります。<br />
<br />
===== オーバービューモードでの起動 =====<br />
<br />
GNOME 40 からは、(以前のバージョンのように) 空のデスクトップではなく、直接オーバービューモードで起動するようになりました。従来の挙動を模倣するには、[https://extensions.gnome.org/extension/4099/no-overview/ No overview at start-up] という拡張機能をインストールするとよいでしょう。<br />
<br />
[https://discourse.gnome.org/t/gnome-40-login-is-to-the-activities-overview-mode-how-do-you-disable-this/5783] での議論を参照してください。<br />
<br />
==== 拡張 ====<br />
<br />
{{Note|GNOME Shell のブラウザプラグインを使うことで [https://extensions.gnome.org extensions.gnome.org] から拡張をインストールすることができるようになりますが、[[GNOME Web]] などの対応ブラウザを使う必要あります。[[Firefox]], Google Chrome/[[Chromium]], [[Opera]], [[Vivaldi]] などでウェブページから拡張をインストールしたい場合は {{AUR|chrome-gnome-shell-git}} やブラウザ拡張をインストールしてください。}}<br />
<br />
GNOME Shell は拡張を使うことで、ユーザー個別またはシステム全体でカスタマイズすることができます。<br />
<br />
拡張のカタログは [https://extensions.gnome.org extensions.gnome.org] にあります。画面の左上にあるスイッチを ''ON'' に設定して (拡張がインストールされていない場合) ダイアログの ''Install'' をクリックすることでブラウザからインストール・有効化することが可能です。インストールした拡張は [https://extensions.gnome.org/local/ extensions.gnome.org/local/] タブに表示され、アップデートが存在しないか確認できます。{{Pkg|gnome-tweak-tool}}{{Broken package link|置換パッケージ: {{Pkg|gnome-tweaks}}}} を使ってインストールした拡張を有効化・無効化することもできます。<br />
<br />
GNOME シェルの拡張に関する詳細は [https://extensions.gnome.org/about/ GNOME Shell Extensions about page] を見て下さい。<br />
<br />
パッケージで拡張を[[インストール]]するとシステムの全てのユーザーから拡張が使えるようになり、自動的にアップデートが行われます。<br />
<br />
{{Pkg|gnome-shell-extensions}} パッケージには GNOME プロジェクトの一部としてメンテナンスされている拡張セットが含まれています (含まれている拡張の多くは GNOME Classic セッションによって使われます)。<br />
<br />
タスクバーを使いたいが GNOME Classic セッションは使いたくないという場合は ''Window list'' 拡張を有効にすると良いでしょう ({{Pkg|gnome-shell-extensions}} パッケージに含まれています)。<br />
<br />
現在有効になっている拡張を確認するには:<br />
$ gsettings get org.gnome.shell enabled-extensions<br />
<br />
==== フォント ====<br />
<br />
{{Tip|''Scaling factor'' を 1.00 以上の値に設定した場合、アクセシビリティメニューが自動的に有効になります。}}<br />
<br />
ウィンドウタイトル、インターフェイス (アプリケーション)、ドキュメントやモノスペースのフォントを設定することができます。Tweak Tool の Fonts タブにあるオプションを見て下さい。<br />
<br />
サブピクセルレンダリングについては大抵のモニターに適合する RGBA が良いでしょう。フォントの表示がおかしい場合は ''Slight'' や ''None'' にまでヒンティングを減らして下さい。<br />
<br />
==== WEBP サムネイル ====<br />
<br />
{{Pkg|webp-pixbuf-loader}} を [[インストール]] して GNOME の画像ビューア(eog)を WEBP 画像でも動作させ、WEBP 画像のサムネイルを作成して [[GNOME Files]] に表示するサムネイルを追加します。<br />
<br />
==== インプットメソッド ====<br />
<br />
Gnome は [[IBus]] によってインプットメソッドの統合的なサポートをしており、インストールする必要があるのは {{Pkg|ibus}} と必要なインプットメソッドエンジン (例: KKC の場合 {{Pkg|ibus-kkc}}) だけです。インストール後、GNOME の地域と言語の設定からインプットメソッドエンジンをキーボードレイアウトとして追加できます。<br />
<br />
==== キーボード配列の癖 ====<br />
<br />
Neo2 のような複数のレイヤー/モディファイアを使う代替キーボードレイアウトを使っている場合、GNOME 設定 (''gnome-control-center'') の ''Keyboard > Type Special Characters'' で ''Alternate Characters Key'' を ''Right Alt'' から変更して、キーボードレイアウトのネイティブモディファイアとして使えるようにしなければならない場合があります。例えば、'Left Alt' に設定すると、''Alt+Tab'' ができなくなるので、変更する場合は注意が必要です。<br />
この変更をしないと、左の ''Mod3'' キーは動作するかもしれませんが、右のキー (''AltGr'') は動作しないかもしれません。(2021-05-18現在)<br />
<br />
==== 電源管理 ====<br />
<br />
変更する意味がある基本的な電源設定 (ノートパソコンを使っている場合に意味がある設定):<br />
<br />
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout ''3600''<br />
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type ''hibernate''<br />
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout ''1800''<br />
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type ''hibernate''<br />
$ gsettings set org.gnome.settings-daemon.plugins.power power-button-action ''suspend''<br />
$ gsettings set org.gnome.desktop.lockdown disable-lock-screen ''true''<br />
<br />
フタを閉じた時でもモニターの電源を切らないようにするには:<br />
<br />
$ gsettings set org.gnome.settings-daemon.plugins.xrandr default-monitors-setup do-nothing<br />
<br />
GNOME 3.24 では以下の設定が廃止されました:<br />
<br />
org.gnome.settings-daemon.plugins.power button-hibernate<br />
org.gnome.settings-daemon.plugins.power button-power<br />
org.gnome.settings-daemon.plugins.power button-sleep<br />
org.gnome.settings-daemon.plugins.power button-suspend<br />
org.gnome.settings-daemon.plugins.power critical-battery-action<br />
<br />
===== ノートパソコンの蓋が閉まってもサスペンドさせない =====<br />
<br />
GNOME の設定パネルには、ラップトップの蓋が閉じたときに起動する動作をユーザが変更するためのオプションがありません。しかし、{{Pkg|gnome-tweaks}} は {{Pkg|systemd}} によって適用される設定を上書きすることができます。''全般'' タブで、''ラップトップの蓋を閉じるとサスペンドする'' をオフにしてください。そうすると、システムは蓋を閉じたときに ''Suspend to RAM (S3)'' をしなくなります。<br />
<br />
システム全体で蓋スイッチの動作を変更するには、上記の設定が '''off''' でないことを確認し、{{ic|/etc/systemd/logind.conf}} の systemd 設定を編集してください。蓋を閉じた時のサスペンドをオフにするには、[[電源管理#ACPI イベント]] で説明するように {{ic|1=HandleLidSwitch=ignore}} を設定してください。<br />
<br />
===== バッテリーレベルが危険な時のアクションを変更する =====<br />
<br />
設定パネルにはバッテリーが少なくなったときに行うアクションを変更するオプションは存在しません。dconf からも設定は削除されています。現在は upower によって管理されているので、{{ic|/etc/UPower/UPower.conf}} で upower の設定を変更してください。以下の設定を適宜修正してください:<br />
<br />
{{hc|head=/etc/UPower/UPower.conf|output=<br />
PercentageLow=10<br />
PercentageCritical=3<br />
PercentageAction=2<br />
CriticalPowerAction=HybridSleep<br />
}}<br />
<br />
===== 電源モード =====<br />
<br />
パワープロファイルをサポートするために、({{Pkg|gnome-control-center}} の) オプション依存の [[CPU 周波数スケーリング#power-profiles-デーモン|power-profiles-デーモン]] をインストールしてください。gnome-shell'' と GNOME Settings は起動時に起動を要求するので、明示的に {{ic|power-profiles-daemon}} サービスを [[systemd#ユニットを使う|スタート/有効化]] する必要はありません。<br />
<br />
このサービスが有効な場合、電源プロファイルは GNOME 設定とシステムメニューの ''電源'' セクションで管理できます。<br />
<br />
===別のウィンドウマネージャを使用する===<br />
<br />
GNOME Shell は別の [[ウィンドウマネージャ]] の使用をサポートしていませんが、[[GNOME Flashback]] は Metacity と [[Compiz]] のセッションを提供します。 さらに、代替コンポーネントを使用する独自の [[GNOME/Tips and tricks#Custom GNOME sessions|custom GNOME sessions]] を定義することもできます。<br />
<br />
== 参照 ==<br />
* [https://www.gnome.org/ 公式ウェブサイト]<br />
* [https://extensions.gnome.org/ GNOME-Shell 拡張]<br />
* [https://wiki.gnome.org/Projects/GnomeShell/CheatSheet GNOME Shell チートシート]<br />
* カスタマイズ (テーマやアイコン):<br />
** [https://wiki.gnome.org/Personalization Personalize GNOME]<br />
** [https://www.gnome-look.org/ GNOME Look]<br />
* GNOME アプリケーション:<br />
** [https://wiki.gnome.org/Apps GNOME アプリインデックス]<br />
**[[Wikipedia:GNOME Core Applications]]<br />
* GNOME ソース/ミラー:<br />
** [https://git.gnome.org/browse/ GNOME Git リポジトリ]<br />
** [https://github.com/GNOME GNOME Github ミラー]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=SQLite&diff=24495
SQLite
2022-03-12T13:45:29Z
<p>Hiromi-mi: 英語版 en:Special:PermanentLink/698398 に同期</p>
<hr />
<div>[[Category:関係データベース管理システム]]<br />
[[en:SQLite]]<br />
[https://www.sqlite.org/ プロジェクトのホームページ] より:<br />
: ''SQLite は自己完結型でサーバーや設定を必要としない、トランザクション SQL データベースエンジンを実装するソフトウェアライブラリです。SQLite は世界で最も幅広く使われている SQL データベースエンジンです。SQLite のソースコードはパブリックドメインとなっております。''<br />
<br />
== インストール ==<br />
<br />
[[公式リポジトリ]]から {{Pkg|sqlite}} を[[インストール]]してください。<br />
<br />
関連パッケージ:<br />
* {{Pkg|sqlite-doc}} - 全ての SQL 構文や C/C++ インターフェイスの仕様などその他様々なドキュメントが含まれているウェブサイトから成る静的な HTML ファイル。[https://www.sqlite.org/docs.html]<br />
* {{Pkg|sqlite-analyzer}} – {{ic|sqlite3_analyzer}} SQLite データベースファイルのテーブルとインデックスの使用量・効率を測定するコマンドラインユーティリティ。[https://www.sqlite.org/sqlanalyze.html]<br />
* {{Pkg|sqlite-tcl}} – SQLite ライブラリの Tcl インターフェース [https://www.sqlite.org/tclsqlite.html]<br />
* {{Pkg|php-sqlite}} - PHP の sqlite3 モジュール (忘れずに {{ic|/etc/php/php.ini}} で有効化してください)。<br />
* {{Pkg|ruby-sqlite3}} – SQLite 組み込みデータベース Ruby バインディング。<br />
* {{Pkg|gambas3-gb-db-sqlite3}} - Gambas3 SQLite3 データベースのアクセスコンポーネント。<br />
<br />
== sqlite3 コマンドラインシェルを使う ==<br />
<br />
SQLite ライブラリには sqlite3 という名前のシンプルなコマンドラインユーティリティが含まれており、SQLite のデータベースに対して手動で SQL コマンドを入力・実行することができます。<br />
<br />
==== データベースの作成 ====<br />
<br />
$ sqlite3 ''databasename''<br />
<br />
==== テーブルの作成 ====<br />
<br />
sqlite> create table tblone(one varchar(10), two smallint);<br />
<br />
==== データの挿入 ====<br />
<br />
sqlite> insert into tblone values('helloworld',20);<br />
sqlite> insert into tblone values('archlinux', 30);<br />
<br />
==== データベースの検索 ====<br />
<br />
sqlite> select * from tblone;<br />
helloworld|20<br />
archlinux|30<br />
<br />
[https://www.sqlite.org/sqlite.html sqlite docs] を参照。<br />
<br />
== GUIツール ==<br />
<br />
* {{App|DB Browser for SQLite|SQLite と互換性のあるデータベースファイルを作成・設計・編集できる高品質なオープンソースツール。|{{Pkg|sqlitebrowser}}}}<br />
* {{App|Sqliteman|シンプルなSQLite3 ブラウザー・エディター。|http://sqliteman.yarpen.cz|{{AUR|sqliteman}}}}<br />
<br />
複数のデータベース管理システムをサポートするツールについては、[[アプリケーション一覧#Database tools]] を参照してください。<br />
<br />
== シェルスクリプトで sqlite を使う ==<br />
<br />
フォーラムの [https://bbs.archlinux.org/viewtopic.php?id=109802 投稿] を見て下さい。<br />
<br />
== 参照 ==<br />
<br />
* [https://www.sqlite.org SQLite ホームページ]<br />
* [https://web.archive.org/web/20160429004604/http://hubpages.com/technology/sqlitehammer SQLite Hammer]<br />
* [https://www.oreilly.com/library/view/using-sqlite/9781449394592 Using SQLite - Oreilly Book]<br />
* [https://www.amazon.com/Definitive-Guide-SQLite-Mike-Owens/dp/1590596730 SQLite - Apress Book]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Dynamic_Kernel_Module_Support&diff=21345
Dynamic Kernel Module Support
2021-08-17T11:10:57Z
<p>Hiromi-mi: typo修正</p>
<hr />
<div>[[Category:カーネル]]<br />
[[en:Dynamic Kernel Module Support]]<br />
[[ru:Dynamic Kernel Module Support]]<br />
[[zh-hans:Dynamic Kernel Module Support]]<br />
[[wikipedia:Dynamic_Kernel_Module_Support|Wikipedia]] より:<br />
<br />
: '''Dynamic Kernel Module Support''' ('''DKMS''') はカーネルのソースツリーの外にソースが存在する Linux カーネルモジュールの生成を可能にするプログラム/フレームワークです。新しいカーネルがインストールされたときに DKMS モジュールは自動的にリビルドされます。<br />
<br />
これはユーザーが会社・プロジェクト・パッケージメンテナが新しいバージョンのモジュールをリリースするのを待つ必要がないということを意味します。[[Pacman#フック]]が導入されたことで、カーネルがアップグレードされたときにモジュールのリビルドは自動的に処理されるようになっています。<br />
<br />
== インストール ==<br />
<br />
{{pkg|dkms}} パッケージとターゲットカーネル/カーネルヘッダーを[[インストール]]してください。例えば、デフォルトの {{pkg|linux}} カーネルの場合は、{{pkg|linux-headers}} になります。他のカーネルの場合は、それぞれ独自のヘッダーパッケージがあります。<br />
<br />
カーネルのソースツリーの外にあるモジュールについてはかなりの数の DKMS のパッケージが作られています。いくらかは [https://www.archlinux.jp/packages/?&q=dkms 公式リポジトリ] にも存在しますが、ほとんどのモジュールは [https://aur.archlinux.org/packages/?SeB=n&K=dkms AUR] にあります。<br />
<br />
== アップグレード ==<br />
<br />
大抵はカーネルのアップグレード時に DKMS モジュールのリビルドが行われますが、リビルドが失敗する可能性がときどきあります。[[pacman]] の出力をよく見てください。起動するのに DKMS モジュールに依存している環境の場合や[[公式リポジトリ]]に存在しないカスタムカーネルで DKMS を使用する場合は特に重要です。<br />
<br />
カーネルの変更に対処したり、バグを修正したり、必要な機能を追加するため、再起動する前に DKMS パッケージをアップグレードするようにしてください。<br />
<br />
== 使用方法 ==<br />
<br />
DKMS を手動で使用する方法です。<br />
<br />
タブ補完は次を実行することで使えます:<br />
<br />
# source /usr/share/bash-completion/completions/dkms<br />
<br />
=== モジュールの確認 ===<br />
<br />
モジュールの現在の状態、バージョンやツリーのカーネルを確認するには:<br />
<br />
$ dkms status<br />
<br />
=== モジュールのリビルド ===<br />
<br />
全てのモジュールをリビルド:<br />
<br />
# dkms autoinstall<br />
<br />
もしくは特定のカーネルのモジュールをリビルド:<br />
<br />
# dkms autoinstall -k 3.16.4-1-ARCH<br />
<br />
''特定の''モジュールをビルド (例: 現在使用しているカーネル):<br />
<br />
# dkms install -m nvidia -v 334.21<br />
<br />
もしくは:<br />
<br />
# dkms install nvidia/334.21<br />
<br />
''全ての''カーネルでモジュールをビルドするには:<br />
<br />
# dkms install nvidia/334.21 --all<br />
<br />
=== モジュールの削除 ===<br />
<br />
モジュールを削除するには (古いモジュールが勝手に削除されることはありません):<br />
<br />
# dkms remove -m nvidia -v 331.49 --all<br />
<br />
もしくは:<br />
<br />
# dkms remove nvidia/331.49 --all<br />
<br />
{{Pkg|dkms}} パッケージを削除した場合、モジュールのビルドファイルに関連する情報が消失します。その場合 {{ic|/usr/lib/modules/KERNELVERSION-ARCH}} から使用しないファイルやディレクトリを削除してください。<br />
<br />
== DKMS パッケージの作成 ==<br />
<br />
以下は DKMS パッケージを作成するときのガイドラインです。<br />
<br />
=== パッケージの名前 ===<br />
<br />
DKMS パッケージは公式のパッケージ名に "''-dkms''" を加えた名前を付けます。<br />
<br />
"''-dkms''" を削ったパッケージ名を表すのによく {{ic|$pkgname}} の下に {{ic|$_pkgname}} 変数が使われます (例: {{ic|1=_pkgname=${pkgname%-*} }})。公式パッケージの PKGBUILD と DKMS パッケージの同じ部分を残しておくのに便利です。<br />
<br />
=== 依存パッケージ ===<br />
<br />
依存パッケージは元のパッケージから継承するのに加えて、{{pkg|dkms}} を追加して {{pkg|linux-headers}} を削除します (dkms パッケージは''任意パッケージ''として並べられます)。<br />
<br />
=== ビルドソースの場所 ===<br />
<br />
ビルドソースは次の場所に配置します (DKMS のデフォルトビルドディレクトリです):<br />
<br />
/usr/src/''PACKAGE_NAME''-''PACKAGE_VERSION''<br />
<br />
パッケージディレクトリ内の、モジュールのビルド方法を記述した DKMS の設定 ({{ic|dkms.conf}}) には {{ic|PACKAGE_NAME}} と {{ic|PACKAGE_VERSION}} 変数を含めます。<br />
<br />
* {{ic|PACKAGE_NAME}} - 実際のプロジェクト名 (通常は {{ic|$_pkgname}} または {{ic|$_pkgbase}})。<br />
* {{ic|PACKAGE_VERSION}} - {{ic|$pkgver}} にするのが慣例です。<br />
<br />
=== パッチ ===<br />
<br />
PKGBUILD または {{ic|dkms.conf}} でソースにパッチを適用できます。<br />
<br />
=== .install でモジュールを自動的にロード ===<br />
<br />
モジュールのロードやアンロードはユーザーが行うようにしてください。モジュールがロードされたときにクラッシュする可能性を考慮します。<br />
<br />
=== namcap の出力 ===<br />
<br />
どんなパッケージでも一度は [[namcap]] (パッケージ内のよくあるミスや標準にないことをしていないか確認します) を通しておくと良いでしょう。ただし、namcap はまだ DKMS 特有のガイドラインに対応していません。<br />
<br />
例えば、DKMS はデフォルトで {{ic|/usr/src/}} を使用しますが、Namcap はこのディレクトリを非標準のディレクトリと判断します。<br />
<br />
また、カーネルモジュールの依存関係を更新するのに {{ic|depmod}} を明示的に呼び出す必要はありません。Pacman はフックによって自動的に DKMS の {{ic|dkms install}} と {{ic|dkms remove}} を実行します。{{ic|dkms install}} によって最後に必ず {{ic|depmod}} が呼びだれます。{{ic|dkms install}} は {{ic|dkms build}} に依存しており (最新カーネルに対してソースがビルドされます)、さらに {{ic|dkms build}} は {{ic|dkms add}} に依存しています ({{ic|/var/lib/dkms/<package>/<version>/source}} から {{ic|/usr/src/<package>}} にシンボリックリンクが張られます)。<br />
<br />
=== サンプル ===<br />
<br />
以下はパッケージ名とバージョンにあわせて {{ic|dkms.conf}} を編集するサンプルパッケージです。<br />
<br />
==== PKGBUILD ====<br />
<br />
{{hc|PKGBUILD|2=<br />
# Maintainer: foo <foo(at)gmail(dot)com><br />
# Contributor: bar <bar(at)gmai(dot)com><br />
<br />
_pkgbase=amazing<br />
pkgname=amazing-dkms<br />
pkgver=1<br />
pkgrel=1<br />
pkgdesc="The Amazing kernel modules (DKMS)"<br />
arch=('i686' 'x86_64')<br />
url="https://www.amazing.com/"<br />
license=('GPL2')<br />
depends=('dkms')<br />
conflicts=("${_pkgbase}")<br />
install=${pkgname}.install<br />
source=("${url}/files/tarball.tar.gz"<br />
'dkms.conf'<br />
'linux-3.14.patch')<br />
md5sums=(''use <nowiki>'</nowiki>updpkgsums''')<br />
<br />
build() {<br />
cd ${_pkgbase}-${pkgver}<br />
<br />
# Patch<br />
patch -p1 -i "${srcdir}"/linux-3.14.patch<br />
<br />
}<br />
<br />
package() {<br />
# Install<br />
msg2 "Starting make install..."<br />
make DESTDIR="${pkgdir}" install<br />
<br />
# Copy dkms.conf<br />
install -Dm644 dkms.conf "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/dkms.conf<br />
<br />
# Set name and version<br />
sed -e "s/@_PKGBASE@/${_pkgbase}/" \<br />
-e "s/@PKGVER@/${pkgver}/" \<br />
-i "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/dkms.conf<br />
<br />
# Copy sources (including Makefile)<br />
cp -r ${_pkgbase}/* "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/<br />
}<br />
}}<br />
<br />
==== dkms.conf ====<br />
<br />
{{hc|dkms.conf|2=<br />
PACKAGE_NAME="@_PKGBASE@"<br />
PACKAGE_VERSION="@PKGVER@"<br />
MAKE[0]="make --uname_r=$kernelver"<br />
CLEAN="make clean"<br />
BUILT_MODULE_NAME[0]="@_PKGBASE@"<br />
DEST_MODULE_LOCATION[0]="/kernel/drivers/misc"<br />
AUTOINSTALL="yes"<br />
}}<br />
<br />
==== .install ====<br />
<br />
pacman には DKMS フックが実装されており、.install ファイルで DKMS 固有の設定を指定する必要はありません。{{ic|dkms install}} や {{ic|dkms remove}} は自動的に呼び出されます。<br />
<br />
== Initial ramdisk ==<br />
<br />
In case you've got any kernel modules installed via DKMS that are used in [[Wikipedia:Initial ramdisk|initial ramdisk]], e.g. {{AUR|zfs-dkms}}, you may want to write a [[pacman]] hook to automate the process of regenerating initramfs image(s).<br />
<br />
For example, when using {{Pkg|linux}} and [[mkinitcpio]], to update [[ZFS]] module after each {{AUR|zfs-dkms}} upgrade,<br />
<br />
{{hc|1=/etc/pacman.d/hooks/90-mkinitcpio-dkms-linux.hook|2=[Trigger]<br />
Operation=Install<br />
Operation=Upgrade<br />
Operation=Remove<br />
Type=Package<br />
Target=zfs-dkms<br />
Target=linux<br />
<br />
[Action]<br />
Description=Update dkms modules in Linux initcpio<br />
Depends=mkinitcpio<br />
When=PostTransaction<br />
NeedsTargets<br />
Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -p linux'}}<br />
<br />
You may add more targets to the hook and make additional copies of the hook if you've installed other kernels. Note the {{ic|90-}} prefix is necessary to make sure it runs after the DKMS hooks.<br />
<br />
== 参照 ==<br />
<br />
* [https://www.linuxjournal.com/article/6896 Linux Journal: Exploring Dynamic Kernel Module Support]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Vulkan&diff=19506
Vulkan
2021-03-12T09:45:58Z
<p>Hiromi-mi: /* インストール */ 英語版 en:Special:PermanentLink/649335 にしたがいインストールパッケージを新しいものに更新</p>
<hr />
<div>[[Category:グラフィック]]<br />
[[Category:開発]]<br />
[[en:Vulkan]]<br />
[[Wikipedia:ja:Vulkan]] より:<br />
:Vulkan (旧名 "glNext") はオーバーヘッドが少ない、クロスプラットフォームなリアルタイム3次元コンピュータグラフィックス・コンピュート API である。<br />
<br />
詳しくは [https://www.khronos.org/vulkan/ Khronos] のウェブサイトを参照してください。<br />
<br />
== インストール ==<br />
<br />
{{Note|<br />
[[ハイブリッドグラフィック]] ([[NVIDIA Optimus]]/AMD Dynamic Switchable Graphics) の場合:<br />
* Vulkan は [[Bumblebee]] で公式ではサポートされていません。[https://github.com/Bumblebee-Project/Bumblebee/issues/769] を見てください。しかし、{{Pkg|primus_vk}} あるいは {{AUR|primus-vk-git}} により動作します。<br />
* Radeon の Vulkan ドライバーは [[PRIME]] をサポートしています。[https://www.phoronix.com/scan.php?page&#61;news_item&px&#61;RADV-PRIME-Lands] を参照。<br />
}}<br />
<br />
Vulkan アプリを実行するには {{pkg|vulkan-icd-loader}} と (32ビットのアプリケーションを実行したい場合は {{pkg|lib32-vulkan-icd-loader}} も)、使用しているグラフィックカードの Vulkan ドライバーを[[インストール]]する必要があります:<br />
<br />
* [[Intel]]: {{Pkg|vulkan-intel}} (または {{Pkg|lib32-vulkan-intel}})<br />
* [[NVIDIA]]: {{pkg|nvidia}} (または {{Pkg|lib32-nvidia-utils}})<br />
* [[AMD]]: 3種類の実装があります。これらは複数同時にインストールできます:<br />
** {{Pkg|vulkan-radeon}} (または {{Pkg|lib32-vulkan-radeon}}) - RADV (Mesa プロジェクトの一部)<br />
** {{Pkg|amdvlk}} (または {{Pkg|lib32-amdvlk}}) - AMDVLK Open (AMD によるメンテナンス)<br />
** {{AUR|vulkan-amdgpu-pro}} (または {{AUR|lib32-vulkan-amdgpu-pro}}) - AMVDLK Closed (AMD によるメンテナンス)<br />
<br />
他のドライバーはパッケージ化されていないので、手動でインストールしてください:<br />
<br />
* PowerVR: https://imgtec.com/vulkan<br />
* Adreno: https://developer.qualcomm.com/software/adreno-gpu-sdk/gpu<br />
<br />
Vulkan アプリケーションを開発するには、{{pkg|vulkan-headers}} も必要になります。また、{{pkg|vulkan-validation-layers}} および {{Pkg|vulkan-tools}} もインストールすると良いでしょう (''vulkaninfo'' ツールが含まれています)。<br />
<br />
== 検証 ==<br />
<br />
システムに現在インストールされている Vulkan 実装を確認するには、次のコマンドを使用します。<br />
<br />
$ ls /usr/share/vulkan/icd.d/<br />
<br />
==Vulkan ハードウェアデータベース==<br />
<br />
ドライバーをインストールしたら、{{aur|vulkan-caps-viewer}} を実行することで GPU とドライバーのスペックを [http://vulkan.gpuinfo.org/ vulkan.gpuinfo.org] で共有することができます。<br />
<br />
== トラブルシューティング ==<br />
<br />
=== Error - vulkan: No DRI3 support ===<br />
<br />
上記のメッセージが表示される場合、以下の内容のファイルを作成して X を再起動してください。Wayland では以下の設定は必要ありません。<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|<br />
Section "Device"<br />
Identifier "Intel Graphics"<br />
Driver "intel"<br />
Option "DRI" "3"<br />
EndSection<br />
}}<br />
<br />
=== Nvidia - vulkan が動作せず初期化できない ===<br />
<br />
{{pkg|vulkan-intel}} がインストールされていないか確認してください。インストールされていると Nvidia の vulkan ドライバーが認識されないことがあります。<br />
<br />
あるいは、[[環境変数]] {{ic|VK_ICD_FILENAMES}} を {{ic|/usr/share/vulkan/icd.d/nvidia_icd.json}} に設定してください。<br />
<br />
=== No device for the display GPU found. Are the intel-mesa drivers installed? ===<br />
<br />
環境変数 VK_ICD_FILENAMES に intel_icd と primus_vk_wrapper の両方のセットしてみてください。<br />
<br />
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json:/usr/share/vulkan/icd.d/primus_vk_wrapper.json</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Qtile&diff=19274
Qtile
2021-02-01T12:11:01Z
<p>Hiromi-mi: /* インストール */ qtile-python3-git AUR パッケージの削除にともない削除</p>
<hr />
<div>[[Category:タイル型ウィンドウマネージャ]]<br />
[[en:Qtile]]<br />
[[fr:Qtile]]<br />
[[zh-hans:Qtile]]<br />
{{Related articles start}}<br />
{{Related|タイル型ウィンドウマネージャの比較}}<br />
{{Related|ウィンドウマネージャ}}<br />
{{Related articles end}}<br />
[http://qtile.org/ Qtile のウェブサイト] より:<br />
:''Qtile はあらゆる機能を備え、ハックしやすい、Python で書かれたタイル型ウィンドウマネージャです。Qtile はシンプルで、小さく、そして拡張性があります。ユーザー定義レイアウト、ウィジェット、そしてビルトインコマンドを簡単に書くことができます。Python で全ての設定が出来るため、Python の能力を最大限に発揮することが可能です。''<br />
<br />
== インストール ==<br />
以下のパッケージのどれかを[[インストール]]してください:<br />
<br />
* {{Pkg|qtile}}: 最新の公式リリース。Python 3 で動作。<br />
* {{AUR|qtile-python2}}: 最新の公式リリース。Python 2 で動作。<br />
* {{AUR|qtile-git}}: 最新の git コミット。Python 2 で動作。<br />
<br />
== Qtile の開始 ==<br />
Qtile を開始するには {{ic|exec qtile}} を {{ic|~/.xinitrc}} に追加し、[[Xorg]] を起動します。デフォルト設定では {{ic|Super+Enter}} を押すと {{ic|xterm}} ターミナルが起動します。Qtile を終了するには {{ic|Super+Ctrl+q}} です。<br />
<br />
== 設定 ==<br />
{{Note|この章では Qtile の基本的な設定のみ紹介しています。より完全な情報については [http://docs.qtile.org/en/latest/ 公式ドキュメント] を御覧ください。}}<br />
<br />
[http://docs.qtile.org/en/latest/manual/config/default.html#configuration-lookup Configuration Lookup] で説明されているように、Qtile ではユーザーが定義した設定ファイルがないときに使われるデフォルトの設定ファイルがあります。Qtile のカスタマイズを始めるときは、デフォルトの設定ファイルを {{ic|~/.config/qtile/config.py}} にコピーしてください:<br />
<br />
$ mkdir -p ~/.config/qtile/<br />
$ cp /usr/share/doc/''qtile_dir''/default_config.py ~/.config/qtile/config.py<br />
<br />
{{ic|''qtile_dir''}} はインストールした AUR パッケージの名前に置き換えてください。<br />
<br />
もしくは、最新のデフォルト設定ファイルを git リポジトリの [https://github.com/qtile/qtile/blob/develop/libqtile/resources/default_config.py libqtile/resources/default_config.py] からダウンロードすることもできます。<br />
<br />
設定はすべて Python により、{{ic|~/.config/qtile/config.py}} で行われます。'''極めて'''簡単な Python の解説は [https://developers.google.com/edu/python/introduction このチュートリアル] を参照してください。Python の変数、関数、モジュール及び Qtile の設定をすぐに始めるために必要なことが解説されています。<br />
<br />
Qtile を再起動するまえに設定ファイルにエラーが無いか次のコマンドで確認することができます:<br />
$ python2 -m py_compile ~/.config/qtile/config.py<br />
このコマンドが出力を行わない場合、設定ファイルは正しく記述されています。<br />
<br />
=== グループ ===<br />
Qtile では、ワークスペース (あるいはビュー) は'''グループ'''と呼称します。以下のように設定します:<br />
{{bc|<nowiki><br />
from libqtile.config import Group, Match<br />
...<br />
groups = [<br />
Group("term"),<br />
Group("irc"),<br />
Group("web", match=Match(title=["Firefox"])),<br />
]<br />
...</nowiki><br />
}}<br />
<br />
=== キー ===<br />
ショートカットキーを '''Key''' クラスで記述できます。<br />
これは {{ic|Alt+Shift+q}} でウィンドウマネージャを終了するための設定例です。<br />
{{bc|<nowiki><br />
from libqtile.config import Key<br />
from libqtile.command import lazy<br />
...<br />
keys = [<br />
Key(<br />
["mod1", "shift"], "q",<br />
lazy.shutdown())<br />
]<br />
...</nowiki><br />
}}<br />
[[Xmodmap]] コマンドを使うことで {{ic|modX}} がどのキーと対応しているか調べることができます。<br />
<br />
=== スクリーンとバー ===<br />
接続されているモニタそれぞれに対して '''Screen''' クラスを作成してください。Qtile のバーは '''Screen''' クラスで以下の例のように設定することができます:<br />
{{bc|<nowiki><br />
from libqtile.config import Screen<br />
from libqtile import bar, widget<br />
...<br />
screens = [<br />
Screen(<br />
bottom=bar.Bar([ # add a bar to the bottom of the screen<br />
widget.GroupBox(), # display the current Group<br />
widget.WindowName() # display the name of the window that currently has focus<br />
], 30))<br />
]<br />
...</nowiki><br />
}}<br />
<br />
=== ウィジェット ===<br />
[http://docs.qtile.org/en/latest/manual/ref/widgets.html 公式ドキュメント] ですべてのビルトインウィジェットを確認することができます。<br />
<br />
もしバーにウィジェットを追加したい場合、単にそのウィジェットを以下のように {{ic|WindowName}} に記述することで出来ます。例えば、バッテリー通知を行いたい場合、{{ic|Battery}} ウィジェットを使うことができます:<br />
{{bc|<nowiki><br />
from libqtile.config import Screen<br />
from libqtile import bar, widget<br />
...<br />
screens = [<br />
Screen(top=bar.Bar([<br />
widget.GroupBox(), # display the current Group<br />
widget.Battery() # display the battery state<br />
], 30))<br />
]<br />
...</nowiki><br />
}}<br />
<br />
=== スタートアップ ===<br />
アプリケーションを'''フック'''で起動することが出来ます。具体的には {{ic|startup}} フックを使います。利用可能なフックのリストは [http://docs.qtile.org/en/latest/manual/ref/hooks.html こちら] を御覧ください。<br />
<br />
以下はアプリケーションを一度だけ実行する例です:<br />
{{bc|<nowiki><br />
import subprocess, re<br />
<br />
def is_running(process):<br />
s = subprocess.Popen(["ps", "axw"], stdout=subprocess.PIPE)<br />
for x in s.stdout:<br />
if re.search(process, x):<br />
return True<br />
return False<br />
<br />
def execute_once(process):<br />
if not is_running(process):<br />
return subprocess.Popen(process.split())<br />
<br />
# start the applications at Qtile startup<br />
@hook.subscribe.startup<br />
def startup():<br />
execute_once("parcellite")<br />
execute_once("nm-applet")<br />
execute_once("dropboxd")<br />
execute_once("feh --bg-scale ~/Pictures/wallpapers.jpg")</nowiki><br />
}}<br />
<br />
=== サウンド ===<br />
'''audio''' グループに[[ユーザーとグループ#グループ管理|ユーザーを追加]]して {{ic|alsamixer}} のコマンドラインインタフェースを使うことで、音量と状態を簡単に操作するためのショートカットが使えます:<br />
{{bc|<nowiki><br />
keys= [<br />
...<br />
# Sound<br />
Key([], "XF86AudioMute", lazy.spawn("amixer -q set Master toggle")),<br />
Key([], "XF86AudioLowerVolume", lazy.spawn("amixer -c 0 sset Master 1- unmute")),<br />
Key([], "XF86AudioRaiseVolume", lazy.spawn("amixer -c 0 sset Master 1+ unmute"))<br />
]</nowiki><br />
}}<br />
<br />
== デバッグ ==<br />
問題箇所を発見したい場合、以下をターミナルで実行してください:<br />
echo "exec qtile" > /tmp/.start_qtile ; xinit /tmp/.start_qtile -- :2<br />
<br />
== 参照 ==<br />
* [http://qtile.org/ Qtile ウェブサイト]<br />
* [http://docs.qtile.org/en/latest/ 公式ドキュメント]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Hyper-V&diff=19200
Hyper-V
2021-01-23T09:33:21Z
<p>Hiromi-mi: /* ネットワークの設定 */ /*インストール後の設定 */ 英語版 en:Special:PermanentLink/635019 635019 に同期</p>
<hr />
<div>[[Category:ハイパーバイザ]]<br />
[[en:Hyper-V]]<br />
Hyper-V は Microsoft Windows の特定のエディションに含まれているハイパーバイザです。Arch Linux の仮想マシンを動作させることができます。一般的に Hyper-V はデスクトップとして使うことよりも企業における使用を想定して作られています。[[VirtualBox]], [[Parallels]], [[VMware]] などの一般消費者向けの VM プログラムにあるような便利で簡単なインターフェイスは付属していません。最新版の Windows 10 と Windows Server 2016 では Arch Linux を簡単に設定して互換性を高めるオプションがあります。インターネット接続共有 (ICS) をセットアップしなくても内部スイッチの NAT やマルチ NAT、ポートフォワーディングが使えます。Arch Linux では第2世代の仮想マシンが利用できます。<br />
<br />
== インストール ==<br />
<br />
Windows Server 2008 以降の Windows や Pro エディションの Windows 8, 8.1, 10 には Hyper-V が付属しています。<!-- If someone has experience with Windows Server 2008+ and knows how Hyper-V is enabled, could they add it here? -->コントロールパネルの "Programs and Features" から "Turn Windows features on or off" で有効にできます。"Hyper-V" チェックボックスにチェックを入れて、変更を適用し、画面の指示に従ってください。<br />
<br />
== ネットワークの設定 ==<br />
<br />
最初に、仮想スイッチを設定して仮想マシンがインターネットに接続できるようにする必要があります。Hyper-V を有効にしたら、Hyper-V Manager を起動してください (検索するか、コマンドプロンプトから次のコマンドを実行してください):<br />
<br />
%windir%\system32\mmc.exe "%windir%\system32\virtmgmt.msc"<br />
<br />
=== 仮想スイッチの設定 ===<br />
<br />
仮想マシンを既存のネットワークに接続するためには、内部ネットワークスイッチあるいは外部ネットワークスイッチ (仮想ネットワークアダプタ) を使用します。外部スイッチは既存のネットワークアダプタ (有線あるいは無線) のどれかに割り当てる (ブリッジする) 必要があります。内部スイッチではホストと仮想マシンの間のネットワーク接続をするのに外部ネットワークにアクセスする必要がありません。内部スイッチに NAT 機能を追加することで、ホストを仮想マシンに対するルーターとして仮想マシンから外部ネットワークにアクセスできるようになります。<br />
<br />
Hyper-V マネージャ GUI では全てのネットワーク機能 (NAT 設定など) を設定することはできません。管理者権限で PowerShell を使うことで詳細な設定が可能になります。<br />
<br />
==== 外部スイッチ ====<br />
<br />
右サイドバーの、"Virtual Switch Manager..." を選択します。ダイアログが開くので、左サイドバーの "New virtual network switch" を選択してください。"What type of virtual switch do you want to create?" から "External" を選び、"Create Virtual Switch" を選択してください。仮想スイッチに新しい名前を付けてください。"External network" から外部スイッチに紐付けるネットワークアダプタを選択します。<br />
<br />
ネットワークが切断されると警告が表示されるので、続行してください。スイッチを設定するためにネットワークが一時的に切断されます。<br />
<br />
上記の設定は (管理者権限で起動した) PowerShell で以下のコマンドを使っても設定できます:<br />
# Get a list of the network adapters in the host. In a laptop you should typically see 'Ethernet' and 'Wi-Fi'<br />
PS C:\WINDOWS\system32> Get-NetAdapter<br />
<br />
# Create the external switch with a name of VM-External-Switch, bound to the network adapter named {{ic|Wi-Fi}} retrieved from the previous command<br />
PS C:\WINDOWS\system32> New-VMSwitch -Name "VM-External-Switch" -AllowManagementOS $True -NetAdapterName "Wi-Fi"<br />
<br />
仮想マシンの Arch Linux で VM のネットワークアダプタとして外部スイッチを選択することで Windows ホストのネットワークアダプタが仮想マシンの {{ic|eth0}} インターフェイスにブリッジされます。Arch Linux の中では通常通りに ([[systemd-networkd]] や [[netctl]] を使って) 固定 IP アドレスまたは DHCP でインターフェイスを設定できます。外部ネットワークからは仮想マシンは別のホストとして扱われます。<br />
<br />
例えば、Arch Linux 仮想マシンで固定 IP を使用する場合、Windows ホストが {{ic|192.168.0.100/24}} なら、Arch Linux 仮想マシンのインターフェイスは {{ic|192.168.0.101/24}} などと設定して、ゲートウェイと DNS サーバーはホストと同じに設定してください。<br />
<br />
仮想マシンで DHCP を使用する場合、IP アドレスは外部ネットワークの DHCP ネットワークによって割り当てられます。<br />
<br />
==== 内部スイッチ ====<br />
<br />
{{Note|Windows 10 Fall Creators Update (バージョン 1803) 以降では、仮想マシンに NAT スイッチ (Default Switch) が組み込まれており、特段の設定なしでインターネットに接続できます。詳細は [https://techcommunity.microsoft.com/t5/virtualization/what-s-new-in-hyper-v-for-windows-10-fall-creators-update/ba-p/382399 What's new in Hyper-V for Windows 10 Fall Creators Update?] を参照してください。}}<br />
<br />
内部スイッチを作成する際も外部スイッチと手順は同じですが、仮想スイッチのタイプとして「内部スイッチ」を選ぶようにしてください。Windows 10 Anniversary Update (バージョン 1607, OS ビルド 14393) から、Hyper-V に内部スイッチのネイティブ NAT サポートが追加されています。古いバージョンでは、インターネット接続共有 (ICS) を使って内部スイッチで仮想マシンからネットワークにアクセスできるようにすることが可能です。<br />
<br />
使用している Windows のバージョンを確認するには、コマンドプロンプトか PowerShell で以下のコマンドを実行:<br />
> winver<br />
<br />
PowerShell で以下のコマンドを使うことで内部スイッチを作成できます:<br />
# Create the internal switch with a name of VM-Internal-Switch<br />
PS C:\WINDOWS\system32> New-VMSwitch -Name "VM-Internal-Switch" -SwitchType Internal<br />
<br />
# Verify that the internal switch was created<br />
PS C:\WINDOWS\system32> Get-VMSwitch<br />
<br />
# Get the ifIndex of the newly created internal switch, usually named 'vEthernet (name)'<br />
PS C:\WINDOWS\system32> Get-NetAdapter<br />
<br />
# Set the IP address of the internal switch, noting the ifIndex retrieved from the previous command.<br />
# In this example, the network address of the internal switch is 192.168.3.0/24, and the ifIndex is 50.<br />
PS C:\WINDOWS\system32> New-NetIPAddress -IPAddress 192.168.3.1 -PrefixLength 24 -InterfaceIndex 50<br />
<br />
# The VMs using the internal switch must use static IP addresses, such as 192.168.3.2/24.<br />
# Support for DHCP in internal switches is not included in current Windows versions (as of Version 1703, OS Build 15063).<br />
<br />
上記のコマンドを実行すると、ホストと仮想マシンは同一の仮想ネットワーク (192.168.3.0/24) 上で互いに通信できるようになります。ただし NAT あるいは ICS を設定しないかぎり仮想マシンは外部ネットワークにアクセスできません。<br />
<br />
Windows 10 ビルド 14393 以上では、以下のコマンドで内部スイッチの NAT とポートフォワーディングを設定できます:<br />
# Create the NAT with IP address of the internal switch<br />
PS C:\WINDOWS\system32> New-NetNat -Name "VM-NAT-Network" -InternalIPInterfaceAddressPrefix 192.168.3.1/24<br />
<br />
# Verify that the NAT was created<br />
PS C:\WINDOWS\system32> Get-NetNat<br />
<br />
# Enable SSH port forwarding on port 2222 of any interface on the host, to a VM with an IP address of 192.168.3.2/24<br />
PS C:\WINDOWS\system32> Add-NetNatStaticMapping -NatName "VM-NAT-Network" -Protocol TCP -ExternalIPAddress 0.0.0.0 -ExternalPort 2222 -InternalIPAddress 192.168.3.2 -InternalPort 22<br />
<br />
# Verify that the port forward is active<br />
PS C:\WINDOWS\system32> Get-NetNatStaticMapping<br />
<br />
コマンドについて詳しくは Microsoft の [https://docs.microsoft.com/en-us/powershell/module/netnat/ NetNat] ドキュメントを参照してください。<br />
<br />
古いバージョンの Windows では、インターネット接続共有を使います。ネットワークと共有センターを開いて、アダプターの設定と変更で、使用しているインターネットアダプタのインターネット接続の共有を有効にしてください。接続を共有することができたら、先に作成した仮想スイッチをブリッジに追加します。<br />
<br />
== 仮想マシンの作成 ==<br />
<br />
左サイドバーの "Hyper-V Manager" から "PC" を選択してください。そして右サイドバーの "New" > "Virtual Machine..." を選んでください。新しい仮想マシンのウィザードでは、大抵の設定を自由にすることができますが、一部には必ず設定しなければならない項目があります。<br />
<br />
"Specify Generation" では "Generation 1" あるいは "Generation 2" のどちらかを選択できます。第1世代の仮想マシンは BIOS ベースのマシンとレガシーなポートをエミュレートします。第2世代の仮想マシンは UEFI ベースのマシンを提供します。互換性や移植性などが理由で第1世代を使わなくてはならない理由がないのであれば、通常は第2世代仮想マシンを使うようにしてください。また、Arch Linux 仮想マシンで第2世代を使うときは、仮想マシンの設定で Hardware -> Security から Secure Boot を無効にしてください。<br />
<br />
Assign Memory の "Startup memory" では、Arch やプログラムが正しく動作するように十分なメモリを設定してください。<br />
<br />
"Configure Networking" の "Connection" では、先に作成した仮想スイッチを選択してください。<br />
<br />
"Connect Virtual Hard Disk" では、"Create a virtual hard disk" を選択して、"Size" が問題ないことを確認してください。仮想ハードディスクはスパースなため、仮想 OS が書き込んだものを保存するのに必要な分だけしか仮想ハードディスクは消費しません。<br />
<br />
"Installation Options" では、"Install an operating system from a bootable CD/DVD-ROM" を選択してください。ディスクや USB デバイスから Arch をインストールする場合、"Media" から "Physical CD/DVD drive" を選んで、適切なドライブ文字を選択してください。ISO ファイルから Arch をインストールする場合、"Image file (.iso)" を選んで、"Browse..." ダイアログからファイルを選択してください。第2世代マシンの場合、物理的な CD/DVD ドライブからの起動はサポートされていません。<br />
<br />
== 仮想マシンの設定 ==<br />
<br />
次に、VM の設定を行なってください。<br />
<br />
仮想マシンには仮想プロセッサを追加することができます。仮想マシンからより多くのプロセッサコアを使えるようにすることで、多くのケースでパフォーマンスが向上します。仮想マシンで重い処理をする場合、搭載されているプロセッサコアの半分を割り当てると良いでしょう。仮想プロセッサの数を変更するには、左サイドバーの "Processor" を選択して、"Number of virtual processors" を変更してください。<br />
<br />
設定を変更したら、"OK" で変更を適用して設定ダイアログを終了してください。<br />
<br />
== Arch のインストール ==<br />
<br />
仮想マシンの設定を終えたら、Arch のインストールを行います。右サイドバーから、"Start" を選んで、"Connect..." を選択してください。接続ウィンドウが開きます。ネットワークは Arch のインストールメディアが立ち上がったときに自動的に機能します。返答が返ってくるアドレスで {{ic|ping}} を実行して確認してください:<br />
<br />
ping archlinux.org<br />
<br />
レスポンスが返ってこない場合、接続がうまくいっていません。その場合、[https://support.microsoft.com/kb/974909 Microsoft によって既知とされているバグ] を踏んでいる可能性があります。Knowledge Base ページに書かれているホットフィックスをインストールしてみるか、暫く待ってから再度試行してください。<br />
<br />
Arch のインストールは他のシステムのインストールと大して変わりません。第1世代 VM は (UEFI ではなく) BIOS しか使えないため、[[ブートローダー]]をインストールする際は BIOS 特有の手順に従ってください。<br />
<br />
== インストール後の設定 ==<br />
<br />
Arch のインストールが完了したら、設定に移ります。<br />
<br />
まず、VM をシャットダウンして、設定ダイアログを開いてください。左のサイドバーの "IDE Controller 1" にある "DVD Drive" を選択します。"Media" から "None" を選択してください。これで VM が毎回インストールメディアから起動しなくなります。<br />
<br />
=== Hyper-V Integration Services ===<br />
<br />
[https://docs.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/manage/manage-hyper-v-integration-services Hyper-v Integration Services] を利用する場合は、{{Pkg|hyperv}} を[[インストール]]します。<br />
<br />
{{ic|hv_fcopy_daemon.service}}, {{ic|hv_kvp_daemon.service}} および {{ic|hv_vss_daemon.service}} を[[起動]]・[[有効化]] してください。<br />
<br />
=== 共有ディレクトリ ===<br />
<br />
ホストとゲストでファイルを共有するのはとても簡単です。まず、ホスト側で、ゲストと共有したいフォルダを選択あるいは作成してください。そしてフォルダのプロパティダイアログを開いてください ({{ic|alt}} + {{ic|Enter}} あるいは右クリックして "Properties..." を選択)。"Sharing" タブを開いて "Advanced Sharing..." を選択してください。そして "Share this folder" チェックボックスにチェックを入れます。デフォルトでは、フォルダは読み取り専用パーミッションになるため、VM からフォルダを読み込むことはできますが書き込むことはできません。パーミッションを変更したい場合、"Permissions" を選択してください。そこで、どのユーザーが共有フォルダにアクセスできるのか、そしてどのパーミッションを割り当てるのかを設定できます。双方向にファイルを共有したい場合、"Change" と "Read" 両方の "Allow" にチェックを入れてください。共有フォルダのプロパティダイアログを終了する前に、フォルダの "Network Path" を確認してください。ネットワークパスは {{ic|\\''computer name''\''folder name''}} という形式になります。<br />
<br />
次に、ホストの IP アドレスを確認してください。プロパティダイアログを終了して、コマンドプロンプトか PowerShell を開きます。{{ic|ipconfig}} を実行してください。先に作成した仮想スイッチの名前が含まれているエントリが確認できるはずです (例: {{ic|Ethernet adapter vEthernet (New Virtual Switch)}})。仮想スイッチのエントリの下に出力された、{{ic|IPv4 Address}} を確認してメモしてください。<br />
<br />
そして、Arch から共有フォルダをマウントします。VM を起動してください。Arch が起動したら、CIFS 共有をマウントするための {{Pkg|cifs-utils}} をまずインストールします (CIFS は Windows の共有フォルダで使われているプロトコルです)。その後、共有フォルダをマウントする場所を決めてください。{{ic|/mnt/Hyper-V}} など、{{ic|/mnt}} 内のディレクトリにすることを推奨します。<br />
<br />
以下が共有フォルダをマウントするコマンドです。先に確認したネットワークパスのバックスラッシュはスラッシュに置き換えてください:<br />
<br />
# mount -t cifs [''Network Path with forward slashes''] ''mountpoint'' -o user=[''user you wish to authenticate as''],ip=[''host IP noted earlier'']<br />
<br />
認証するユーザーのパスワードが要求されます。コマンドオプションの {{ic|1=password=''password''}} を使ってパスワードを指定することもできますが、コマンド履歴ファイルにホストのパスワードが残ってしまうためセキュリティ上よろしくありません。また、スクリプトからコマンドを実行する場合、パスワードをスクリプト内に保存することになります。パスワードを直書きする代わりの方法として、credentials ファイルを使用することができます。ファイル内にユーザー名とパスワードを記入して、ファイルのアクセス権限を制限することが可能です。ファイルの名前は何でもかまいません。例えば、{{ic|.credentials}} という名前でホームディレクトリに保存する場合、以下のようになります:<br />
<br />
{{hc|~/.credentials|2=<br />
username=''username''<br />
password=''password''<br />
}}<br />
<br />
ファイルを作成したら、パーミッションを変更して読み取り権限を制限します:<br />
<br />
# chmod 600 ~/.credentials<br />
<br />
そして {{ic|mount}} コマンドに credentials オプションを追加します: {{ic|1=credentials=~/.credentials}}。これで、共有フォルダをマウントするとき、自動的にユーザー名とパスワードが指定されます。<br />
<br />
例えば、具体的に、ネットワークパスが {{ic|\\PC\share}} の共有ディレクトリを {{ic|/mnt/Hyper-V}} にマウントする場合、ホストのユーザー名が "John" でホストの IP アドレスが 198.123.151.23 なら、マウントコマンドは以下のようになります:<br />
<br />
# mount -t cifs //PC/share /mnt/Hyper-V -o credentials=~/.credentials,ip=198.123.151.23<br />
<br />
この方法の問題点として、ホストの IP アドレスが変わってしまった場合 (DHCP で動的に IP アドレスが割り当てられていたり、新しいネットワークに移行した場合など)、ゲスト側でホストの IP アドレスを毎回書き換える必要があります。しかしながら、{{Pkg|smbclient}} パッケージに含まれている {{ic|nmblookup}} ユーティリティを使用することで、SMB ホストに関連付けられている IP アドレスを確認することが可能です。上記の例の場合、以下のようになります:<br />
<br />
{{hc|nmblookup PC|2=<br />
198.123.151.23 PC<00><br />
}}<br />
<br />
IP アドレスだけが欲しい場合、{{ic|head}} と {{ic|cut}} を使って抽出することができます:<br />
<br />
{{hc|nmblookup PC <nowiki>|</nowiki> head -n 1 <nowiki>|</nowiki> cut -d ' ' -f 1|2=<br />
192.123.151.23<br />
}}<br />
<br />
さらに {{ic|mount}} コマンドで使用する IP アドレスを上のコマンドで置き換えることができます:<br />
<br />
# mount -t cifs //PC/share /mnt/Hyper-V -o <nowiki>credentials=~/.credentials,ip=</nowiki>"$(nmblookup PC <nowiki>|</nowiki> head -n 1 <nowiki>|</nowiki> cut -d ' ' -f 1)"<br />
<br />
起動時に自動的にマウントするなど、共有フォルダをマウントする方法は他にも存在します。詳しくは [[Samba]] の記事を参照してください。<br />
<br />
=== Xorg ===<br />
<br />
グラフィカルなプログラムは {{Pkg|xf86-video-fbdev}} パッケージで Xorg を使うことで簡単に実行できます。パッケージをインストールしたら適当なウィンドウマネージャやデスクトップ環境を使ってください。X の起動に問題は発生しないはずです。</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=TheShell&diff=19123
TheShell
2021-01-12T02:25:03Z
<p>Hiromi-mi: 英語版 en:Special:PermanentLink/628138 628138に同期</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:デスクトップ環境]]<br />
[[en:TheShell]]<br />
[[zh-hans:TheShell]]<br />
{{Related articles start}}<br />
{{Related|デスクトップ環境}}<br />
{{Related|Qt}}<br />
{{Related articles end}}<br />
<br />
[https://github.com/vicr123/theshell theShell] は [[Qt]] ツールキットを使って書かれている[[デスクトップ環境]]です。<br />
<br />
== インストール ==<br />
<br />
安定版を[[インストール]]することができます: {{AUR|theshell}}。<br />
<br />
theShell はテストを行ってない不安定版として "blueprint" が存在し、{{AUR|theshell-blueprint}} パッケージで[[インストール]]できます。<br />
<br />
== 起動 ==<br />
<br />
X セッションで {{ic|ts-startsession}} を使って theShell を起動します。あるいは[[ディスプレイマネージャ]]を使ってセッションとして "theShell" を選択してください。<br />
<br />
== トラブルシューティング ==<br />
<br />
=== "Adjust Screen Resolution" を押しても何もおきない ===<br />
<br />
{{Pkg|kscreen}} と {{Pkg|kde-cli-tools}} がインストールされていることを確認してください [https://github.com/vicr123/theshell/issues/53]。<br />
<br />
詳しくは [https://github.com/vicr123/theshell/issues theshell issues] を見てください。<br />
<br />
== ヒントとテクニック ==<br />
<br />
=== 安定版と "blueprint" 版を共存させる ===<br />
<br />
theShell と theShell Blueprint は一緒にインストールすることができます。バイナリと初期化スクリプトの名前を変更して (例えば {{ic|theshell-b}} と {{ic|init-theshell-b}})、バイナリフォルダに配置して、{{ic|.desktop}} ファイルの名前を変更して、新しい初期化スクリプトを起動するように変更し、xsessions フォルダに配置してください。<br />
<br />
=== 別のウィンドウマネージャを使う ===<br />
<br />
theShell の設定から、"Danger" カテゴリを開いて、"Window Manager Command" にウィンドウマネージャを起動するコマンドを入力してください。</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Fprint&diff=19114
Fprint
2021-01-09T04:44:06Z
<p>Hiromi-mi: SDDM 記事更新に伴うリンク先変更</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:入力デバイス]]<br />
[[bg:Fprint]]<br />
[[en:Fprint]]<br />
[[fa:Fprint]]<br />
[[pt:Fprint]]<br />
{{Related articles start}}<br />
{{Related|Fingerprint-gui}}<br />
{{Related|ThinkFinger}}<br />
{{Related articles end}}<br />
[https://www.freedesktop.org/wiki/Software/fprint/ fprint のホームページ] より:<br />
<br />
:''fprint プロジェクトは商用の指紋認証デバイスのサポートという Linux デスクトップの隙間を埋めることを目指しています。''<br />
<br />
ノートパソコンに内蔵されている指紋リーダーを使用して [[PAM]] を使ったログインを行うというアイデアです。この記事ではバックアップ用にログインで通常のパスワードを使う方法も説明しています (指紋スキャナーが推奨されない理由は多数存在します)。<br />
<br />
== 要件 ==<br />
<br />
使っている指紋スキャナーがサポートされていることを確認してください。あなたのデバイスがサポートされているかどうかは [https://www.freedesktop.org/wiki/Software/fprint/libfprint/Supported_devices/ この] サポートされているデバイスのリストで確認できます。あなたのデバイスを確認するには、次を入力してください:<br />
$ lsusb<br />
<br />
{{Note|デバイスのリストは不定期更新であり不完全です。リストにデバイスがない場合でも以下の手順を試す価値があります。}}<br />
<br />
== インストール ==<br />
<br />
[[公式リポジトリ]]から {{Pkg|fprintd}} をインストールしてください。{{Pkg|imagemagick}} も必要かもしれません。<br />
<br />
{{Note| [https://gitlab.freedesktop.org/3v1n0/libfprint/-/tree/tod libfprint-tod] はlibfprint 本体に含まれていない一部の接触型指紋センサーへ対応した派生版です。{{AUR|libfprint-tod-git}} としてインストールできます。}}<br />
<br />
== 設定 ==<br />
<br />
=== ログイン設定 ===<br />
<br />
{{Note|<br />
* [[GDM]] を使っているなら、ログインメニューで指紋オプションが使えるはずです (使えない場合、ユーザーを {{ic|input}} グループに追加してみてください)。このセクションは飛ばして下さい。<br />
* [[SDDM]] を使う場合、[[SDDM#指紋認証の利用]]を参照してください。<br />
}}<br />
<br />
{{ic|pam_fprintd.so}} を sufficient として {{ic|/etc/pam.d/system-local-login}} の auth セクションの一番上に追加してください:<br />
<br />
{{hc|/etc/pam.d/system-local-login|<br />
'''auth sufficient pam_fprintd.so'''<br />
auth include system-login<br />
...<br />
}}<br />
<br />
これで最初に指紋によるログインが試行され、それが失敗したりユーザーのホームディレクトリに指紋署名がない場合、パスワードによるログインになります。<br />
<br />
同じように {{ic|/etc/pam.d/}} 内の他のファイルを修正することもできます。例えば GNOME の polkit 認証なら {{ic|/etc/pam.d/polkit-1}} です。<br />
<br />
{{ic|pam_fprintd.so}} を ''sufficient'' として追加すると、指紋署名が登録済みのときにパスワード認証ではなく指紋認証が促されます。パスワード認証と指紋認証を両方使えるようにするには先頭に以下の内容を追加します:<br />
{{hc|/etc/pam.d/sudo|<br />
'''auth sufficient pam_unix.so try_first_pass likeauth nullok'''<br />
auth sufficient pam_fprintd.so<br />
...<br />
}}<br />
<br />
最初にパスワードを促され、入力せずに {{ic|Enter}} キーを押すと指紋認証が行われます。<br />
<br />
=== 指紋署名の作成 ===<br />
<br />
指の署名を追加するには、次を実行してください:<br />
$ fprintd-enroll<br />
<br />
指をスキャンするように求められます。その後、{{ic|/var/lib/fprint/}} に署名が作成されます。<br />
<br />
5本の指全ての署名を新しく作成するには ([username] は実際のユーザー名に置き換えてください):<br />
<br />
$ fprintd-delete [username]<br />
$ for finger in {left,right}-{thumb,{index,middle,ring,little}-finger}; do fprintd-enroll -f $finger [username]; done<br />
<br />
詳しくは、{{ic|man fprintd}} を見て下さい。<br />
<br />
=== 登録の制限 ===<br />
<br />
デフォルトでは新しい指紋を登録するのにパスワードを入力する必要はありません。[[Polkit]] ルールを使うことでパスワードの入力を必須にすることができます。<br />
<br />
{{Note|{{ic|/etc/polkit-1/rules.d/}} の設定ファイルはパッケージ更新時に上書きされます。最初に設定ファイルを {{ic|/etc/polkit-1/rules.d/}} から {{ic|/usr/share/polkit-1/rules.d/}} にコピーしてください。}}<br />
<br />
以下の例ではスーパーユーザーだけが指紋を登録できるようになります:<br />
<br />
{{hc|/etc/polkit-1/rules.d/50-net.reactivated.fprint.device.enroll.rules|<nowiki>polkit.addRule(function (action, subject) {<br />
if (action.id == "net.reactivated.fprint.device.enroll") {<br />
return subject.user == "root" ? polkit.Result.YES : polkit.result.NO<br />
}<br />
})</nowiki>}}</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=SDDM&diff=19113
SDDM
2021-01-09T04:42:53Z
<p>Hiromi-mi: /* 指紋認証の利用 */ 英語版 版 637967 と同期</p>
<hr />
<div>[[Category:KDE]]<br />
[[Category:ディスプレイマネージャ]]<br />
[[en:SDDM]]<br />
[[fr:SDDM]]<br />
[[ru:SDDM]]<br />
[[zh-hans:SDDM]]<br />
{{Related articles start}}<br />
{{Related|ディスプレイマネージャ}}<br />
{{Related|KDE}}<br />
{{Related articles end}}<br />
[[Wikipedia:Simple Desktop Display Manager|Simple Desktop Display Manager]] (SDDM) は [[KDE|KDE 5]] の Plasma デスクトップで推奨されている[[ディスプレイマネージャ]]です。<br />
<br />
Wikipedia より:<br />
<br />
:''Simple Desktop Display Manager (SDDM) は X11 と Wayland ウィンドウシステム向けのディスプレイマネージャ (グラフィカルログインプログラム) である。SDDM は C++11 によってスクラッチで書かれており QML によるテーマ機能をサポートしている。KDE ディスプレイマネージャの後継で KDE Frameworks 5, KDE Plasma 5, KDE Applications 5 と合わせて使われる。''<br />
<br />
{{Note|Wayland のサポートは完全ではありません [https://github.com/sddm/sddm/issues/440]。Wayland のセッションは認識されますが、SDDM 自体は X11 で動作します。}}<br />
<br />
== インストール ==<br />
<br />
{{Pkg|sddm}} パッケージを[[インストール]]してください。<br />
<br />
そして[[ディスプレイマネージャ#ディスプレイマネージャをロードする]]にしたがってブート時に SDDM を起動させます。<br />
<br />
== 設定 ==<br />
<br />
SDDM のデフォルト設定ファイルは {{ic|/usr/lib/sddm/sddm.conf.d/default.conf}} に存在します。設定を変更するときは {{ic|/etc/sddm.conf.d/}} に設定ファイルを作成してください。利用可能なオプションは {{man|5|sddm.conf}} を見て下さい。<br />
<br />
({{grp|plasma}} グループに含まれている) {{pkg|sddm-kcm}} パッケージをインストールすることで Plasma のシステム設定から GUI で SDDM を設定できます。Qt ベースの設定エディタ ({{AUR|sddm-config-editor-git}}) も存在します。<br />
<br />
[[systemd]] によって制御されている環境では、SDDM がデフォルトで {{ic|systemd-logind}} を使ってセッションを管理するため、何も設定しなくても問題なく動作します。そのため、パッケージをインストールした時に設定ファイルは作成されません。SDDM にはデフォルト設定のサンプル設定ファイルを生成するコマンドがあるので、必要であれば使って下さい:<br />
<br />
# sddm --example-config > /etc/sddm.conf.d/sddm.conf<br />
<br />
=== 自動ログイン ===<br />
<br />
KDM と同じように、SDDM は設定ファイルによって自動ログインをサポートしています、例:<br />
<br />
{{hc|/etc/sddm.conf.d/autologin.conf|2=<br />
[Autologin]<br />
User=john<br />
Session=plasma.desktop<br />
}}<br />
<br />
上の設定だと、システムが起動した時に {{ic|john}} ユーザーで KDE Plasma セッションが起動します。利用できるセッションのタイプは {{ic|ls /usr/share/xsessions/}} でわかります。<br />
<br />
{{Warning|設定を誤ると、あなたのノートパソコンへの物理的なアクセスを手に入れた攻撃者が自動ログインを使って、たやすくデスクトップを破壊してしまう可能性があります。自動ログインは他の認証プロンプトによってシステムが保護されているときにだけ有効にしてください。例: パスフレーズによる [[dm-crypt|root ファイルシステムの暗号化]]。}}<br />
<br />
KDE Plasma の自動ログインを使用した場合、セッションのロックは利用できなくなります [https://github.com/sddm/sddm/issues/306]。<br />
<br />
以下のスクリプトを追加することで KDE のスクリーンセーバーを自動的に有効化することが可能です:<br />
<br />
#!/bin/bash<br />
/usr/bin/qdbus-qt4 org.kde.screensaver /ScreenSaver SetActive true &<br />
exit 0<br />
<br />
=== ログイン時に KDE Wallet のロックを解除 ===<br />
<br />
[[KDE Wallet#ログイン時に KDE ウォレットを自動的にアンロック]]を見てください。<br />
<br />
=== テーマ設定 ===<br />
<br />
テーマの設定は {{ic|[Theme]}} セクションで変更できます。<br />
<br />
デフォルトの Plasma テーマを使いたい場合 {{ic|breeze}} に設定してください。<br />
<br />
{{AUR|archlinux-themes-sddm}} など、[[AUR]] から入手できるテーマもあります。<br />
<br />
==== メインテーマ ====<br />
<br />
メインテーマは {{ic|Current}} で設定します。例: {{ic|1=Current=archlinux-simplyblack}}。<br />
<br />
==== テーマの編集 ====<br />
<br />
SDDM のデフォルトのテーマディレクトリは {{ic|/usr/share/sddm/themes/}} です。作成したカスタムテーマはこのディレクトリのサブディレクトリに追加することができます。サブディレクトリの名前はテーマの名前と合わせる必要があります。インストールされているファイルを参考に自分自身のテーマを作成してみてください。<br />
<br />
==== テーマのテスト (プレビュー) ====<br />
<br />
必要であれば SDDM のテーマをプレビューすることができます。以下のようにコマンドを実行してください:<br />
<br />
$ sddm-greeter --theme /usr/share/sddm/themes/breeze<br />
<br />
新しいウィンドウが開いてテーマのプレビューが表示されます。<br />
<br />
{{Note|プレビューモードでは、シャットダウンやサスペンド、ログインなどは出来ません。}}<br />
<br />
==== マウスカーソル ====<br />
<br />
マウスカーソルのテーマを設定したい場合は、{{ic|CursorTheme}} を使用したいカーソルテーマに設定してください。<br />
<br />
[[Plasma]] で使用できるマウスカーソルのテーマの名前は: {{ic|breeze_cursors}}, {{ic|Breeze_Snow}}, {{ic|breeze-dark}}。<br />
<br />
==== アバターの変更 ====<br />
<br />
{{ic|username.face.icon}} という名前の png 画像をデフォルトディレクトリ {{ic|/usr/share/sddm/faces/}} に配置してください。もしくはデフォルトディレクトリを別のディレクトリに変更することもできます。例:<br />
<br />
{{hc|/etc/sddm.conf.d/avatar.conf|2=<br />
[Theme]<br />
FacesDir=/var/lib/AccountsService/icons/<br />
}}<br />
<br />
ホームディレクトリのルートに {{ic|.face.icon}} という名前の PNG 画像を置く方法もあります。ただし、{{ic|sddm}} ユーザーからファイルが読み込めるようにする必要があります。<br />
<br />
{{Note|アバター画像がシンボリックリンクの場合、リンク先のファイルに適切なファイル権限を設定してください。[[#ユーザーアイコンが表示されない]]を参照。}}<br />
<br />
=== Numlock ===<br />
<br />
Numlock を強制的に有効にしたい場合、{{ic|[General]}} セクションに {{ic|1=Numlock=on}} と設定してください。<br />
<br />
=== ディスプレイの回転 ===<br />
<br />
[[Xrandr#設定]]を見てください。<br />
<br />
=== DPI の設定 ===<br />
<br />
ディスプレイマネージャからディスプレイの PPI 設定を適切に設定できると便利です。設定ファイルで "ServerArguments" パラメータの末尾に {{ic|-dpi ''your_dpi''}} を追加してください。例:<br />
<br />
{{hc|head=/etc/sddm.conf.d/dpi.conf|output=<br />
[X11]<br />
ServerArguments=-nolisten tcp -dpi 94<br />
}}<br />
<br />
=== HiDPI の有効化 ===<br />
<br />
{{note|[[HiDPI]] のサポートはバージョン 0.15 から問題が発生しています [https://github.com/sddm/sddm/issues/894]。}}<br />
<br />
以下のファイルを作成してください:<br />
<br />
{{hc|/etc/sddm.conf.d/hidpi.conf|2=<br />
[General]<br />
EnableHiDPI=true<br />
}}<br />
<br />
=== 指紋認証の利用 ===<br />
<br />
{{Note|作業前に指紋登録がなされていることを確認してください。指紋リーダーへの対応は不完全であり、この方法ではパスワードのみでのログインは不可能なようです。}}<br />
<br />
SDDM では [[fprint]] を利用した指紋認証が可能です。{{Pkg|fprint}} をインストールし指紋署名を登録したのち、<br />
{{ic|/etc/pam.d/sddm}} の先頭に {{ic|auth sufficient pam_fprintd.so}} を加えてください。<br />
<br />
{{Tip|KDE のロックスクリーンで動作させるには、この行を {{ic|/etc/pam.d_kde}} の先頭に加えてください。<br />
<br />
また、ロックスクリーンではパスワード認証と指紋認証のいずれか片方を使うこともできます。auth セクションの先頭に以下を加えてください:<br />
<br />
{{hc|/etc/pam.d/kde/|<br />
auth sufficient pam_unix.so try_first_pass likeauth nullok<br />
auth sufficient pam_fprintd.so<br />
}}<br />
<br />
SDDM ({{ic|/etc/pam.d/sddm}}) でも動作しますが、ログイン後に別途 KWallet のロックを解除する必要があります。}}<br />
<br />
パスワード欄を空にして {{ic|Enter}} キーを押すと、指紋認証が開始されます。<br />
<br />
== トラブルシューティング ==<br />
<br />
=== ログイン後にフリーズする ===<br />
<br />
{{ic|~/.Xauthority}} を削除してみてください。<br />
<br />
=== SDDM が tty7 ではなく tty1 で起動する ===<br />
<br />
SDDM は [http://0pointer.de/blog/projects/serial-console.html systemd の慣習] にしたがって tty1 に一番目のグラフィカルセッションを起動します。tty1 から tty6 まではテキストコンソール用にするという、昔のやり方が良い場合は、設定ファイルで {{ic|[X11]}} セクションの {{ic|MinimumVT}} 変数を変更してください:<br />
<br />
{{hc|/etc/sddm.conf.d/tty.conf|2=<br />
[X11]<br />
MinimumVT=7<br />
}}<br />
<br />
=== ユーザーが greeter に表示されない ===<br />
<br />
{{Warning|{{ic|UID}} が高すぎたり低すぎるユーザーは基本的に[[ディスプレイマネージャ]]から認識されないようになっています。}}<br />
<br />
SDDM はデフォルトで UID が 1000 から 65000 の間のユーザーしか表示しません。使用したいユーザーの UID がこの値を下回っている場合、範囲を修正する必要があります。設定ファイルで以下のように変更してください (例えば UID が 501 の場合):<br />
<br />
{{hc|/etc/sddm.conf.d/uid.conf|2=<br />
[Users]<br />
HideShells=/sbin/nologin,/bin/false<br />
# Hidden users, this is if any system users fall within your range, see /etc/passwd on your system.<br />
HideUsers=git,sddm,systemd-journal-remote,systemd-journal-upload<br />
<br />
# Maximum user id for displayed users<br />
MaximumUid=65000<br />
<br />
# Minimum user id for displayed users<br />
MinimumUid=500 #My UID is 501}}<br />
<br />
=== SDDM が US キーボードのレイアウトしかロードしない ===<br />
<br />
SDDM は {{ic|/etc/X11/xorg.conf.d/00-keyboard.conf}} で指定されたキーボードレイアウトをロードします。{{ic|localectl set-x11-keymap}} コマンドを使うことでこの設定ファイルを生成することが可能です。詳しくは [[Xorg でのキーボード設定]]を見て下さい。<br />
<br />
最初キーボードレイアウトが US に表示され、パスワードを入力し始めるとすぐに適当なレイアウトに切り替わる場合もあります [https://github.com/sddm/sddm/issues/202#issuecomment-76001543]。これは SDDM のバグではなく {{Pkg|libxcb}} (バージョン 1.13-1) が原因です [https://github.com/sddm/sddm/issues/202#issuecomment-133628462]。<br />
<br />
=== ユーザーアイコンが表示されない ===<br />
<br />
SDDM はユーザーアイコンを {{ic|~/.face.icon}} から読み込みます。<br />
<br />
SDDM ユーザーからファイルが読み込めるように権限を設定してください:<br />
<br />
$ setfacl -m u:sddm:x ~/<br />
$ setfacl -m u:sddm:r ~/.face.icon<br />
<br />
詳しくは [https://github.com/sddm/sddm#no-user-icon SDDM README: No User Icon] を参照。<br />
<br />
=== 画面解像度が低すぎる ===<br />
<br />
EDID の情報が壊れているディスプレイで [[HiDPI]] を使用した場合に発生する問題です [https://github.com/sddm/sddm/issues/692]。<br />
<br />
[[#HiDPI の有効化|HiDPI]] を有効化している場合、HiDPI を無効にしてみてください。<br />
<br />
無効にしても問題が解決しない場合、Xorg の設定ファイルでスクリーンのサイズを設定してください:<br />
{{hc|/etc/X11/xorg.conf.d/90-monitor.conf|2=<br />
Section "Monitor"<br />
Identifier "<default monitor>"<br />
DisplaySize 345 194 # in millimeters<br />
EndSection<br />
}}<br />
<br />
=== ホームディレクトリが autofs の場合にロード時間が長い ===<br />
<br />
SDDM はデフォルトでユーザーのアバターとして {{ic|~/.face.icon}} ファイルを使います。ホームディレクトリが [[autofs]] の場合 (例えば [[dm-crypt]] を使っている場合)、autofs がディレクトリをマウントできないと報告するまで SDDM は60秒間待機します。<br />
<br />
{{ic|/etc/sddm.conf}} を編集することでアバターを無効化することができます:<br />
<br />
{{hc|/etc/sddm.conf|2=<br />
[Theme]<br />
EnableAvatars=false<br />
}}</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Fprint&diff=19109
Fprint
2021-01-08T09:59:51Z
<p>Hiromi-mi: 英語版 en:fprint 版 647625 に追従</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:入力デバイス]]<br />
[[bg:Fprint]]<br />
[[en:Fprint]]<br />
[[fa:Fprint]]<br />
[[pt:Fprint]]<br />
{{Related articles start}}<br />
{{Related|Fingerprint-gui}}<br />
{{Related|ThinkFinger}}<br />
{{Related articles end}}<br />
[https://www.freedesktop.org/wiki/Software/fprint/ fprint のホームページ] より:<br />
<br />
:''fprint プロジェクトは商用の指紋認証デバイスのサポートという Linux デスクトップの隙間を埋めることを目指しています。''<br />
<br />
ノートパソコンに内蔵されている指紋リーダーを使用して [[PAM]] を使ったログインを行うというアイデアです。この記事ではバックアップ用にログインで通常のパスワードを使う方法も説明しています (指紋スキャナーが推奨されない理由は多数存在します)。<br />
<br />
== 要件 ==<br />
<br />
使っている指紋スキャナーがサポートされていることを確認してください。あなたのデバイスがサポートされているかどうかは [https://www.freedesktop.org/wiki/Software/fprint/libfprint/Supported_devices/ この] サポートされているデバイスのリストで確認できます。あなたのデバイスを確認するには、次を入力してください:<br />
$ lsusb<br />
<br />
{{Note|デバイスのリストは不定期更新であり不完全です。リストにデバイスがない場合でも以下の手順を試す価値があります。}}<br />
<br />
== インストール ==<br />
<br />
[[公式リポジトリ]]から {{Pkg|fprintd}} をインストールしてください。{{Pkg|imagemagick}} も必要かもしれません。<br />
<br />
{{Note| [https://gitlab.freedesktop.org/3v1n0/libfprint/-/tree/tod libfprint-tod] はlibfprint 本体に含まれていない一部の接触型指紋センサーへ対応した派生版です。{{AUR|libfprint-tod-git}} としてインストールできます。}}<br />
<br />
== 設定 ==<br />
<br />
=== ログイン設定 ===<br />
<br />
{{Note|<br />
* [[GDM]] を使っているなら、ログインメニューで指紋オプションが使えるはずです (使えない場合、ユーザーを {{ic|input}} グループに追加してみてください)。このセクションは飛ばして下さい。<br />
* [[SDDM]] を使う場合、[[:en:SDDM#Using a fingerprint reader]] を参照してください。<br />
}}<br />
<br />
{{ic|pam_fprintd.so}} を sufficient として {{ic|/etc/pam.d/system-local-login}} の auth セクションの一番上に追加してください:<br />
<br />
{{hc|/etc/pam.d/system-local-login|<br />
'''auth sufficient pam_fprintd.so'''<br />
auth include system-login<br />
...<br />
}}<br />
<br />
これで最初に指紋によるログインが試行され、それが失敗したりユーザーのホームディレクトリに指紋署名がない場合、パスワードによるログインになります。<br />
<br />
同じように {{ic|/etc/pam.d/}} 内の他のファイルを修正することもできます。例えば GNOME の polkit 認証なら {{ic|/etc/pam.d/polkit-1}} です。<br />
<br />
{{ic|pam_fprintd.so}} を ''sufficient'' として追加すると、指紋署名が登録済みのときにパスワード認証ではなく指紋認証が促されます。パスワード認証と指紋認証を両方使えるようにするには先頭に以下の内容を追加します:<br />
{{hc|/etc/pam.d/sudo|<br />
'''auth sufficient pam_unix.so try_first_pass likeauth nullok'''<br />
auth sufficient pam_fprintd.so<br />
...<br />
}}<br />
<br />
最初にパスワードを促され、入力せずに {{ic|Enter}} キーを押すと指紋認証が行われます。<br />
<br />
=== 指紋署名の作成 ===<br />
<br />
指の署名を追加するには、次を実行してください:<br />
$ fprintd-enroll<br />
<br />
指をスキャンするように求められます。その後、{{ic|/var/lib/fprint/}} に署名が作成されます。<br />
<br />
5本の指全ての署名を新しく作成するには ([username] は実際のユーザー名に置き換えてください):<br />
<br />
$ fprintd-delete [username]<br />
$ for finger in {left,right}-{thumb,{index,middle,ring,little}-finger}; do fprintd-enroll -f $finger [username]; done<br />
<br />
詳しくは、{{ic|man fprintd}} を見て下さい。<br />
<br />
=== 登録の制限 ===<br />
<br />
デフォルトでは新しい指紋を登録するのにパスワードを入力する必要はありません。[[Polkit]] ルールを使うことでパスワードの入力を必須にすることができます。<br />
<br />
{{Note|{{ic|/etc/polkit-1/rules.d/}} の設定ファイルはパッケージ更新時に上書きされます。最初に設定ファイルを {{ic|/etc/polkit-1/rules.d/}} から {{ic|/usr/share/polkit-1/rules.d/}} にコピーしてください。}}<br />
<br />
以下の例ではスーパーユーザーだけが指紋を登録できるようになります:<br />
<br />
{{hc|/etc/polkit-1/rules.d/50-net.reactivated.fprint.device.enroll.rules|<nowiki>polkit.addRule(function (action, subject) {<br />
if (action.id == "net.reactivated.fprint.device.enroll") {<br />
return subject.user == "root" ? polkit.Result.YES : polkit.result.NO<br />
}<br />
})</nowiki>}}</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Partclone&diff=19108
Partclone
2021-01-08T09:27:35Z
<p>Hiromi-mi: 言語間リンク更新</p>
<hr />
<div>[[Category:ファイルシステム]]<br />
[[en:Partclone]]<br />
[[es:Partclone]]<br />
[[pt:Partclone]]<br />
[[zh-hans:Partclone]]<br />
[https://partclone.org Partclone] は有名な [http://www.partimage.org/Main_Page Partimage] と同じように、使用しているブロックだけを考慮してパーティションのバックアップ・リストアをすることができます。<br />
<br />
==インストール==<br />
<br />
[[公式リポジトリ]]から {{Pkg|partclone}} をインストールしてください。<br />
<br />
==ext4 でフォーマットされたパーティションで Partclone を使う==<br />
<br />
===圧縮を使用しない===<br />
<br />
圧縮を'''使わないで'''バックアップするには:<br />
$ partclone.ext4 -c -s /dev/sda1 -o ~/image_sda1.pcl<br />
<br />
リストアするには:<br />
$ partclone.ext4 -r -s ~/image_sda1.pcl -o /dev/sda1<br />
<br />
===圧縮を使用する===<br />
<br />
圧縮を'''使って'''バックアップするには:<br />
$ partclone.ext4 -c -s /dev/sda1 | gzip -c > ~/image_sda1.pcl.gz<br />
<br />
{{Note|最大限圧縮したいときは {{ic|gzip -c9}} を使ってください。}}<br />
<br />
リストアするには:<br />
zcat ~/image_sda1.pcl.gz | partclone.ext4 -r -o /dev/sda1</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Fwupd&diff=19100
Fwupd
2021-01-07T14:07:40Z
<p>Hiromi-mi: /* UEFI のアップグレード */ 英語版 642497 に追従</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:ハードウェア]]<br />
[[en:Fwupd]]<br />
[[zh-hans:Fwupd]]<br />
{{Related articles start}}<br />
{{Related|EFI システムパーティション}}<br />
{{Related|セキュアブート}}<br />
{{Related|Unified Extensible Firmware Interface}}<br />
{{Related articles end}}<br />
'''fwupd''' はデバイスのファームウェアをアップデートするためのシンプルなデーモンです。''fwupdate'' で UEFI BIOS をアップデートできます。<br />
<br />
サポートされているデバイスは [https://fwupd.org/lvfs/devicelist] や [https://fwupd.org/vendorlist] に記載されています。<br />
<br />
== インストール ==<br />
<br />
{{Pkg|fwupd}} パッケージを[[インストール]]してください。<br />
<br />
''fwupdate'' を使用する場合は [[#UEFI BIOS のアップグレード]]を見てください。<br />
<br />
=== グラフィカルフロントエンド ===<br />
<br />
[[デスクトップ環境]]によっては fwupd が標準でサポートされています:<br />
* {{App|GNOME Software|[[GNOME]] 環境上で動作します。バックグラウンドで定期的に更新を確認しダウンロードを行います。ファームウエアがダウンロードされると GNOME Software に更新の実行確認を行うポップアップが表示されます。|https://wiki.gnome.org/Apps/Software|{{Pkg|gnome-software}}}}<br />
* {{App|KDE Discover|[[Plasma]] 上で動作します。KDE Plasma 5.14 以降では KDE Discover 上で fwupd バックエンドが実装されました。他のシステムのアップデートと同様にファームウエアの更新も表示されます。|https://userbase.kde.org/Discover|{{Pkg|discover}}}}<br />
* {{App|GNOME Firmware|Application to upgrade, downgrade and reinstall firmware on devices supported by fwupd. It can unlock locked fwupd devices, verify firmware on supported devices and display all releases for a fwupd device.|https://gitlab.gnome.org/hughsie/gnome-firmware-updater|{{Pkg|gnome-firmware}}}}<br />
<br />
== 使用方法 ==<br />
<br />
fwupd に検出されたデバイスを確認するには:<br />
$ fwupdmgr get-devices<br />
<br />
{{Note|上記のコマンドで出力されるデバイスの一部は fwupd でアップデートできない場合があります。例えば Intel の内蔵グラフィックはアップデートできません。}}<br />
<br />
利用可能なアップデートのメタデータを更新するには:<br />
$ fwupdmgr refresh<br />
<br />
システムのアップデート一覧を確認するには:<br />
$ fwupdmgr get-updates<br />
<br />
アップデートをインストールするには:<br />
$ fwupdmgr update<br />
<br />
{{Note|<br />
* 再起動が必要ない更新はただちに適用されます。<br />
* 起動時に実行される更新は次回再起動時に行なわれます。<br />
* アップデートによっては root 権限が必要になることがあります。<br />
}}<br />
<br />
== UEFI のアップグレード ==<br />
<br />
{{Warning|UEFI ファームウエアの更新により[[ブートローダー]]が破棄される可能性があります。更新完了後に NVRAM エントリを [[efibootmgr]] などで再生成する必要が生じる場合があります。}}<br />
<br />
アップグレードする前に以下を確認してください:<br />
<br />
* マシンが [[UEFI]] モードで起動していることを確認してください。BIOS モードでは正しく動作しません。<br />
* [[Unified_Extensible_Firmware_Interface#UEFI 変数のサポートを正しく動作させるための必要条件|EFI 変数にアクセスできること]]を確認してください。<br />
* [[EFI システムパーティション]] (ESP) が正しくマウントされていることを確認してください。この記事では ESP のマウントポイントを {{ic|''esp''}} として表記します。<br />
<br />
=== ESP の準備 ===<br />
fwupd は必要なファイルを ''esp'' 以下にコピーします。'EFI' デイレクトリが存在しない場合は作成してください:<br />
# mkdir ''esp''/EFI/<br />
<br />
{{Warning|'EFI' ディレクトリは全て大文字でなければなりません。fwupd が ''esp'' を ''esp''/efi/ と誤認識し ''esp''/efi/EFI/ 以下を検索する可能性があります。}}<br />
<br />
作成後、fwupd サービスを[[再起動]]してください。<br />
# systemctl restart fwupd.service<br />
<br />
そののち、{{ic|$ fwupdmgr refresh}} と {{ic|$ fwupdmgr update}} を実行すると、再起動が促されファームウエアが更新されます。 <br />
<br />
=== セキュアブート ===<br />
<br />
[[セキュアブート]]が有効な環境で fwupd EFI バイナリをチェーンロードするには {{Pkg|shim}} が正しくインストールされていることが必要です。<br />
<br />
==== 自己署名証明書を使う ====<br />
<br />
ファームウエア更新に使われる UEFI バイナリ {{ic|/usr/lib/fwupd/efi/fwupdx64.efi}} を手動で署名する方法もあります。<br />
<br />
{{Pkg|sbsigntools}} を使うと署名されたバイナリ {{ic|/usr/lib/fwupd/efi/fwupdx64.efi.signed}} が生成されます。<br />
# sbsign --key <keyfile> --cert <certfile> /usr/lib/fwupd/efi/fwupdx64.efi<br />
<br />
[[Pacman フック]]を使うと {{ic|fwupdx64.efi}} の更新時に自動で署名できます:<br />
<br />
{{hc|head=/etc/pacman.d/hooks/sign-fwupd-secureboot.hook|output=<br />
[Trigger]<br />
Operation = Install<br />
Operation = Upgrade<br />
Type = Path<br />
Target = usr/lib/fwupd/efi/fwupdx64.efi<br />
<br />
[Action]<br />
When = PostTransaction<br />
Exec = /usr/bin/sbsign --key <keyfile> --cert <certfile> /usr/lib/fwupd/efi/fwupdx64.efi<br />
Depends = sbsigntools<br />
}}<br />
<br />
{{ic|<keyfile>}} や {{ic|<certfile>}} は対応する鍵と証明書へのパスに置き換えます。<br />
<br />
pacman hook を使わず、{{ic|/usr/lib/fwupd/efi/fwupdx64.efi}} から {{ic|/usr/lib/fwupd/efi/fwupdx64.efi.signed}} へシンボリックリンクを作成し {{ic|/etc/sbupdate.conf}} の {{ic|EXTRA_SIGN}} に追加する方法もあります。<br />
<br />
最後に、{{ic|/etc/fwupd/uefi.conf}} の {{ic|DisableShimForSecureBoot}} を {{ic|true}} に変更し {{ic|fwupd.service}} サービスを再起動してください。<br />
<br />
{{Note|fwupd 1.4 以前を使う場合は設定オプションの名前が微妙に異なります。}}<br />
<br />
さらなる詳細は [https://github.com/fwupd/fwupd/issues/669 GitHub Issue] を参照してください。 <br />
<br />
== トラブルシューティング ==<br />
=== エラーは出ないが再起動後も更新されない ===<br />
<br />
'''現象:''' {{ic|fwupdmgr update}} は正常に終了し (UEFI の更新などで) 再起動を求められた。しかし再起動してもファームウエア更新は行なわれなかった。<br />
<br />
'''考えられる原因:''' 起動順序がBIOS で正しく設定されていない。</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%82%AA%E3%83%95%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&diff=19087
パッケージのオフラインインストール
2021-01-05T08:36:01Z
<p>Hiromi-mi: 英語版 en:Offline installation of packages 版 646970 に追従</p>
<hr />
<div>[[Category:パッケージ管理]]<br />
[[Category:Arch の入手とインストール]]<br />
[[en:Offline installation of packages]]<br />
[[es:Offline installation of packages]]<br />
[[ru:Offline installation of packages]]<br />
== 通常の方法: Pacman ==<br />
この方法は [https://bbs.archlinux.org/viewtopic.php?id=30431 こちらのスレッド] への投稿が元になっています。<br />
<br />
インターネットにアクセスできるコンピュータでパッケージデータベースをダウンロードして他のコンピュータに転送します。必要ならば、{{ic|MIRROR}} を [https://www.archlinux.jp/mirrors/status/ ミラーリスト] に記載されているミラーに置き換えてください。<br />
<br />
{{bc|1=<nowiki><br />
#!/bin/bash<br />
<br />
ARCH="x86_64"<br />
MIRROR='https://mirrors.kernel.org/archlinux/'<br />
<br />
wget "${MIRROR}/community/os/${ARCH}/community.db"<br />
wget "${MIRROR}/core/os/${ARCH}/core.db"<br />
wget "${MIRROR}/extra/os/${ARCH}/extra.db"<br />
if [ "$ARCH" == "x86_64" ]; then<br />
wget "${MIRROR}/multilib/os/${ARCH}/multilib.db"<br />
fi<br />
</nowiki>}}<br />
<br />
以下のステップは {{ic|pacman -Sy}} を実行したときのようにパッケージリストが最新の状態で行います。<br />
<br />
{{ic|*.db}} ファイルをオフラインの PC に転送したら、以下のコマンドを実行:<br />
# cp *.db /var/lib/pacman/sync/<br />
# pacman -Sp --noconfirm ''package-name'' > pkglist<br />
<br />
{{Tip|{{ic|/etc/pacman.d/mirrorlist}} ファイルでサーバーが有効になっていることを確認してください。有効になっていないと次のようなエラーメッセージが表示されます: {{ic|error: no database for package: package-name}}。}}<br />
<br />
インストール直後の新しい Arch Linux ベースシステムをアップデートするには:<br />
# pacman -Sup --noconfirm > pkglist<br />
<br />
それからエディタでテキストファイルを開いて URL 以外の行を全て削除してください。そしてインターネットに接続できるマシンにリストをコピーして手動でパッケージをダウンロードするか wget で空のディレクトリに保存します:<br />
<br />
# wget -nv -i ../pkglist<br />
<br />
{{Tip|[https://www.cygwin.com cygwin] などの Windows 環境を使用してパッケージをダウンロードするとファイル名がおかしくなります。Windows のファイルの命名規則ではコロンなどをエスケープする必要があるためです。そのような場合は {{ic|1=wget --restrict-file-names=unix}} を使ってください。}}<br />
<br />
{{ic|*.pkg.tar.gz}} ファイルを全てオフラインのマシンにコピーしたら、{{ic|/var/cache/pacman/pkg}} に配置して以下のコマンドを実行してください:<br />
<br />
# pacman -S ''package-name''<br />
<br />
=== 単純な例 ===<br />
ダウンロードしたパッケージをインストールするには:<br />
# pacman -U /root/Download/packagename.tar.gz<br />
ディレクトリに保存した複数のパッケージをインストールするには:<br />
# pacman -U /root/Download/*.tar.gz<br />
<br />
=== 少し工夫した例 ===<br />
シナリオ: インターネット接続が出来る 'Al' とインターネットに接続できない 'Bob' という2台の Arch Linux マシンが存在して、[[NVIDIA]] パッケージと依存パッケージを 'Bob' に依存する必要がある場合。インストールしたいパッケージは {{Pkg|nvidia}}, {{Pkg|nvidia-utils}}, {{Pkg|xf86-video-nouveau}} ですが {{ic|/var/cache/pacman/pkg/}} の代わりに nvidia という名前の専用のリポジトリを使いたいとします。<br />
<br />
==== ダウンロードするパッケージのリストを生成 ====<br />
最新のリポジトリデータベースがある Arch Linux マシンで、必要なパッケージのリンクのリストを作成するには:<br />
# pacman -Sp nvidia nvidia-utils xf86-video-nouveau > /path/to/nvidia.list<br />
{{ic|nvidia.list}} ファイルには指定したパッケージのリンクと Al にまだインストールされていない依存パッケージのリンクが記載されます。キャッシュを削除しないかぎりインストールしたパッケージはキャッシュディレクトリに存在します。{{ic|/etc/pacman.conf}} でキャッシュディレクトリを確認できます (例: {{ic|/var/cache/pacman/pkg/}})。<br />
<br />
==== パッケージと依存パッケージをダウンロードしてコピー ====<br />
インターネット接続が必要です。'Al' で {{ic|/path/to/nvidia}} というディレクトリを作成して以下のコマンドを実行:<br />
# wget -P /path/to/nvidia/ -i /path/to/nvidia.list<br />
それからキャッシュからインストール済みの依存パッケージをコピーします。https://www.archlinux.jp/packages/ を閲覧して手動で確認するかパッケージのキャッシュの合計容量が大きくない場合は全てのパッケージをコピーしてください:<br />
# cp /var/cache/pacman/pkg/* /path/to/nvidia/<br />
<br />
==== パッケージのためのリポジトリデータベースを作成 ====<br />
'Al' あるいは 'Bob' で (pacman に含まれている) {{ic|repo-add}} コマンドを使うことで作成できます。まずパッケージをダウンロードした {{ic|/path/to/nvidia}} ディレクトリに移動して、{{ic|nvidia.db.tar.gz}} という名前でデータベースファイルを作成してください:<br />
$ cd /path/to/nvidia<br />
# repo-add nvidia.db.tar.gz *.pkg.tar.xz<br />
<br />
==== パッケージの転送 ====<br />
全てのパッケージをダウンロードしたら、'Al' はもう必要ありません。{{ic|/path/to/nvidia}} の中身を 'Bob' の一時的なパッケージキャッシュディレクトリにコピーしてください。ここでは例として {{ic|/home/me/nvidia}} というディレクトリを使います:<br />
$ cp /path/to/nvidia/* /home/me/nvidia<br />
<br />
次に、[[pacman]] からパッケージの新しいリポジトリを使えるようにします。まず現在の {{ic|pacman.conf}} をコピー:<br />
# cp /etc/pacman.conf /etc/pacman.conf.old<br />
リポジトリに署名は追加しないため {{ic|/etc/pacman.conf}} の設定で SigLevel は Never に設定します:<br />
SigLevel = Never<br />
それから {{ic|pacman.conf}} の末尾に以下の行を追加:<br />
[nvidia]<br />
Server = file:///home/me/nvidia<br />
インターネットからパッケージがダウンロードされないように他のリポジトリをコメントアウトする必要があるかもしれません。その後 pacman で作成した nvidia リポジトリを同期します:<br />
# pacman -Sy <br />
上記のコマンドで {{ic|/home/me/nvidia}} の {{ic|nvidia.db.tar.gz}} ファイルが認識され {{ic|/var/lib/pacman/sync/nvidia}} に伸長されて nvidia リポジトリに含まれているパッケージのデータベースが作成されます。<br />
<br />
==== パッケージのインストール ====<br />
最後にパッケージをインストールします:<br />
# pacman -S nvidia nvidia-utils xf86-video nouveau<br />
<br />
=== オンラインソースの復元 ===<br />
Bob をオンラインにするときは前に作成しておいた {{ic|/etc/pacman.conf.old}} で {{ic|/etc/pacman.conf}} を置き換えてオンラインのリポジトリを使えるようにします。<br />
<br />
==== ソース ====<br />
[https://bbs.archlinux.org/viewtopic.php?id=60856) Heller_Barbe] と [https://bbs.archlinux.org/viewtopic.php?id=30431 byte] に感謝します。</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Slime&diff=19060
Slime
2021-01-04T06:01:21Z
<p>Hiromi-mi: インストール方法を更新</p>
<hr />
<div>[[Category:開発]]<br />
[[en:Slime]]<br />
== イントロダクション ==<br />
<br />
[http://www.common-lisp.net/project/slime/ SLIME] (Superior Lisp Interaction Mode for [[Emacs]]) は [http://www.sbcl.org SBCL] (この記事で説明), [http://www.cons.org/cmucl/ CMUCL], [https://clisp.sourceforge.io/ CLISP] などの [[Common Lisp]] 実装の開発環境です。<br />
<br />
以下のコンポーネントが必要になります:<br />
<br />
* '''emacs'''<br />
* '''sbcl'''<br />
* '''slime'''<br />
<br />
== インストール ==<br />
[[公式リポジトリ]]から [[Emacs]] と {{Pkg|sbcl}} を、[[AUR]] から {{AUR|slime-git}} を[[インストール]]してください。もしくは、[https://www.quicklisp.org/beta/ quicklisp] で slime をインストールすることもできます。<br />
<br />
== 設定 ==<br />
<br />
slime を利用するには、以下の行を [[Emacs#カスタマイズ|init ファイル]]に追加してください:<br />
<br />
(setq inferior-lisp-program "/path/to/lisp-executable")<br />
<br />
そして emacs の中から {{Ic|M-x slime}} を実行します。<br />
<br />
もしくは、slime をファンシーに設定したい場合、以下のようにしてください:<br />
<br />
(setq inferior-lisp-program "/path/to/lisp-executable")<br />
(add-to-list 'load-path "/usr/share/emacs/site-lisp/slime/")<br />
(require 'slime-autoloads)<br />
詳細については [https://common-lisp.net/project/slime/doc/html/Installation.html 公式ドキュメント] を参照してください。<br />
<br />
== 資料 ==<br />
<br />
* [http://www.cliki.net/ The Common Lisp wiki]<br />
* [http://www.gigamonkeys.com/book/ Practical Common Lisp]<br />
* [http://mitpress.mit.edu/sicp/full-text/book/book.html Structure and Interpretation of Computer Programs]<br />
* [http://www.paulgraham.com/lisp.html Paul Graham's Lisp resources].</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=SpaceFM&diff=19058
SpaceFM
2021-01-03T14:24:36Z
<p>Hiromi-mi: 開発状況を追記</p>
<hr />
<div>[[Category:ファイルマネージャ]]<br />
[[en:SpaceFM]]<br />
[[ru:SpaceFM]]<br />
{{Related articles start}}<br />
{{Related|ファイルマネージャの機能}}<br />
{{Related|PCManFM}}<br />
{{Related|ウィンドウマネージャ}}<br />
{{Related articles end}}<br />
<br />
{{Note|2018年以降コミットがなく、開発は停止しています。}}<br />
SpaceFM は [[PCManFM]] のフォークであり、軽量で、細かい設定が可能、デスクトップに依存しない、マルチパネルのタブ式ファイル・デスクトップマネージャです。内蔵の仮想ファイルシステム、[[udev]] ベースのデバイスマネージャ、カスタマイズできるメニューシステム、[[Bash]] との統合を特徴としています。詳しい情報は [https://ignorantguru.github.io/spacefm/ SpaceFM の公式ウェブサイト] を見て下さい。<br />
<br />
== インストール ==<br />
<br />
{{AUR|spacefm}} パッケージを[[インストール]]してください。GTK+ 2 バージョンは {{AUR|spacefm-gtk2}} パッケージでインストールできます。<br />
<br />
== 使用方法 ==<br />
<br />
[https://ignorantguru.github.io/spacefm/spacefm-manual-en.html ユーザーマニュアル] を見て下さい。<br />
<br />
=== ファイル検索 ===<br />
<br />
SpaceFM には {{pkg|catfish}} のようなファイル検索機能が組み込まれています:<br />
<br />
$ spacefm -f<br />
<br />
=== デスクトップの管理 ===<br />
<br />
SpaceFM には軽量なデスクトップマネージャが含まれています [https://ignorantguru.github.io/spacefm/spacefm-manual-en.html#invocation-desktopmanager]。デスクトップメニューを置き換え、デスクトップアイコンを追加し、壁紙を設定します。<br />
<br />
元のウィンドウマネージャのメニューに戻すには、{{ic|Desktop preferences}} を開いて:<br />
<br />
$ spacefm --desktop-pref<br />
<br />
{{ic|Desktop}} タブの {{ic|Right click shows WM menu}} オプションを有効にしてください。上記のコマンドをキーバインドに追加することで元のデスクトップメニューに簡単にアクセスできます。<br />
<br />
デスクトップを管理させないで[[デーモン]]として SpaceFM を実行するには [https://ignorantguru.github.io/spacefm/spacefm-manual-en.html#invocation-daemonmode]、次を使用:<br />
<br />
$ spacefm -d<br />
<br />
SpaceFM がデーモンプロセスとして自動起動できるか、またはスタンドアロンの[[ウィンドウマネージャ]]のデスクトップを管理するのに使えるかは、ウィンドウマネージャによります。ウィンドウマネージャに autostart ファイルが存在しない場合は、[[xinitrc]] や [[xprofile]] を編集してください。<br />
<br />
=== リモートホストのマウント ===<br />
<br />
SpaceFM は [[Udisks#Devmon|udevil]] によるリモートホストのマウントをサポートしています。リモートホストを追加するには、URL バーにアクセス URL を入力してください。ターミナルウィンドウがポップアップしてマウント処理が表示されます。これはエラーの確認に便利です。<br />
<br />
サポートされているリモートホストについては [http://ignorantguru.github.io/udevil/udevil--help.html udevil help] に記載があります。例えばリモートの FTP サーバーをマウントするには:<br />
<br />
<nowiki>ftp://user:pass@sys.domain/share</nowiki><br />
<br />
== ヒントとテクニック ==<br />
<br />
=== 圧縮ファイルを展開するのではなくアプリで開く ===<br />
<br />
デフォルトでは、SpaceFM は圧縮ファイルをダブルクリックしたときに展開するように設定されています。{{pkg|file-roller}} などの規定のアーカイブマネージャを使って開きたい場合は、圧縮ファイルを選択して、右クリックでコンテキストメニューを出して次を選択: Open / Archive default / Open With App<br />
<br />
=== ファイル・フォルダでだけ表示されるカスタムコンテキストメニュー ===<br />
<br />
ファイルやフォルダを選択した時だけにカスタムコンテキストメニューコマンドを表示するには、以下のルールを {{ic|Menu Item Properties -> Context}} に追加します:<br />
<br />
MIME Type equals true<br />
File Is Dir equals true<br />
File Is Text equals true<br />
<br />
== トラブルシューティング ==<br />
<br />
=== カラムのサイスが変えられない ===<br />
<br />
SpaceFM (GTK+ 2 バージョン) を初めて起動した時にこの問題が起こることがあります [https://github.com/IgnorantGuru/spacefm/issues/382]。<br />
<br />
=== セグメンテーション違反 ===<br />
<br />
SpaceFM が以下のようなエラーでクラッシュする場合:<br />
<br />
localhost kernel: [245086.687050] spacefm[30684]: segfault at 3e8000003e8 ip 00007fc95c586866 sp 00007fffb1dc9cc0 error 4 in libgtk-x11-2.0.so.0.2400.24[7fc95c446000+435000]<br />
<br />
SpaceFM は様々な GUI エレメントを使用するので、テーマ (特に GTK+ 3) の機能障害に影響を受けやすいのが原因です。Raleigh (デフォルトのテーマ) など様々なテーマを試してみて下さい。SpaceFM でだけでテーマを変更するには (GTK+ 2 の場合):<br />
<br />
GTK2_RC_FILES=/usr/share/themes/Raleigh/gtk-2.0/gtkrc spacefm<br />
<br />
詳しくは [https://ignorantguru.github.io/spacefm/spacefm-manual-en.html#invocation-gtkthemes] を参照。</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Unclutter&diff=18570
Unclutter
2020-12-15T05:47:04Z
<p>Hiromi-mi: en:Unclutter 版 630650 に追従</p>
<hr />
<div>[[Category:X サーバー]]<br />
[[en:Unclutter]]<br />
Unclutter は必要ないときに X のマウスカーソルを非表示にして、マウスカーソルが邪魔にならないようにします。マウスを動かせばマウスカーソルは再度表示されます。マウスを使う機会があまりない[[タイル型ウィンドウマネージャ]]を使用する場合などに Unclutter は非常に有用です。<br />
<br />
== インストール ==<br />
<br />
{{Pkg|unclutter}} パッケージを[[インストール]]してください。<br />
<br />
{{Note|このパッケージには本来の unclutter ではなく [https://github.com/Airblader/unclutter-xfixes unclutter-xfixes] が含まれています。}}<br />
<br />
== 使用方法 ==<br />
<br />
''.xinitrc'' ファイルや WM/DE を使って unclutter を起動するようにしてください。例えば、''.xinitrc'' に以下を追記します:<br />
<br />
unclutter &<br />
<br />
== 既知のバグ ==<br />
<br />
=== マウスカーソルの挙動がおかしくなる ===<br />
<br />
タイル型ウィンドウマネージャ ([[xmonad]] や [[i3]] など) で unclutter を使用すると問題が発生する場合、{{AUR|unclutter-xfixes-git}} をインストールするか {{ic|-grab}} オプションを使ってください:<br />
<br />
unclutter -grab &<br />
<br />
{{Note|{{ic|-grab}} オプションを使うと ''slock'' や ''i3lock'' などの画面ロックアプリケーションが機能しなくなります。}}<br />
<br />
Unclutter を使っていると SDL 製のゲームでマウスが変な動きをすることもあり、その問題が原因で、マウスカーソルが一定の場所にリセットされます。詳細は [https://bugs.launchpad.net/ubuntu/+source/unclutter/+bug/61105 こちら] を参照。<br />
<br />
SDL の問題に対する対処方法は2つあります。環境変数に {{ic|SDL_VIDEO_X11_DGAMOUSE&#61;0}} を追加する方法 (ゲームによっては上手くいきません) と {{ic|-grab}} オプションを使って unclutter を起動する方法です。ただし、grab オプションを使用すると gksu などのアプリケーションが正しく動作しなくなるので注意してください。<br />
<br />
== 代替 ==<br />
<br />
=== unclutter-xfixes ===<br />
<br />
Unclutter は90年代初期に作られたツールで、それからアップデートされていません。Unclutter は偽のウィンドウを作成したりアクティブなポインタグラブを作成することで動作しますが、どちらも問題を抱えています。現在では、X11 拡張として Xinput2 と Xfixes がリリースされており、大抵のユーザー環境で使用することが可能です。{{AUR|unclutter-xfixes-git}} はこれらの新しい拡張を使用して、他のアプリケーションに干渉することなくカーソルを非表示にできます。<br />
<br />
2018年12月現在、{{Pkg|unclutter}} パッケージにより unclutter-xfixes がインストールされます [https://github.com/Airblader/unclutter-xfixes/issues/33#issuecomment-446209712][https://github.com/archlinux/svntogit-community/commit/e652764bc5e55caefd3cd0df886554d3c76253ee]。<br />
<br />
=== xbanish ===<br />
<br />
xbanish は unclutter と同じような機能を持っているツールで別の方法を使っています。カーソルを移動する代わりに xbanish はタイピング中にカーソルを非表示にします。AUR の {{AUR|xbanish}} または {{AUR|xbanish-git}} パッケージでインストールできます。<br />
<br />
== 参照 ==<br />
<br />
* http://linuxappfinder.com/package/unclutter - Linux App Finder の Unclutter のページ</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=%E3%83%8F%E3%82%A4%E3%83%96%E3%83%AA%E3%83%83%E3%83%89%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF&diff=18540
ハイブリッドグラフィック
2020-12-13T05:25:28Z
<p>Hiromi-mi: en:Hybrid Graphics 英語版 630900 に追従</p>
<hr />
<div>[[Category:グラフィック]]<br />
[[en:Hybrid graphics]]<br />
[[tr:Hibrit_Grafik_Teknolojileri]]<br />
[[zh-hans:Hybrid graphics]]<br />
ハイブリッドグラフィックは同一のコンピュータで2つのグラフィックカードを動作させるというコンセプトです。一つのコンピュータで二つのグラフィックカードを使用して、高いパフォーマンスと省電力の両方を達成する新しいテクノロジーとして、ノートパソコンのメーカーによって開発されました。<br />
<br />
様々なテクノロジーが存在し、問題を解決するために個々のメーカーによって独自の方法が開発されています。このテクノロジーは Windows ではしっかりとサポートされていますが、Linux ディストリビューションでは未だ実験的な段階です。このページでは、それぞれのアプローチとモデルについて軽く説明し、そして GNU/Linux システムのサポートがないことに対するコミュニティによるソリューションを紹介します。<br />
<br />
== 第一世代のハイブリッドモデル (ベーシックな切り替え) ==<br />
<br />
{{Note|1=10年以上前のノートパソコンでない限り、大抵の場合は[[#動的な切り替えモデル|動的切り替え]]が使われます。}}<br />
<br />
ハイブリッドグラフィックの第一世代のノートパソコンではハードウェアマルチプレクサ ([[Wikipedia:Multiplexer|MUX]]) を使用していました。内蔵グラフィックプロセッサ (IGP) による省電力ながらローレベルな 3D レンダリングを使用するか、あるいは専用グラフィックプロセッサ (DGP) を使って電力消費量の多い高性能な 3D レンダリングを使うか選ぶことができます。ユーザーがグラフィックプロファイルを選べるのは起動あるいはログイン時だけで、ユーザーセッションの実行中はどちらかに固定されます。GPU の切り替えは以下のような手順で行われます:<br />
<br />
* ディスプレイをオフ<br />
* DGP をオン<br />
* マルチプレクサを切り替え<br />
* IGP をオフ<br />
* ディスプレイをオン<br />
<br />
一時的に画面が非表示になるためスムーズな切り替えではありません。下のモデルのほうがユーザーフレンドリです。<br />
<br />
== 動的な切り替えモデル ==<br />
<br />
{{Note|2016年現在、ほとんどのメーカーはこちらのモデルを使っています。}}<br />
<br />
新しいハイブリッドグラフィック技術のほとんどは [[#第一世代のハイブリッドモデル (ベーシックな切り替え)|基本的なスイッチング]]として2つのグラフィックカードを使います。<br />
しかし、今では DGP と IGP はフレームバッファに接続されていてハードウェアマルチプレクサがありません。<br />
IGP は常にオンとなっており省電力と高性能レンダリングどちらが必要なのかにあわせて DGP のオンオフが切り替わります。<br />
ほとんどの場合は DGP だけを使用するということはできず、ソフトウェアによって切り替えやレンダリングが制御されます。<br />
ブート時に、Linux カーネルはビデオモードを使用して起動されて、低水準なグラフィックドライバーが設定されます。ほとんどの Linux ディストリビューションは X.org を使用してグラフィック環境を整えます。最後に、ログインマネージャやウィンドウマネージャなどの他のソフトウェアが起動します。このような階層的なシステムは単一のグラフィックカードを使用する場合を想定して設計されています。<br />
<br />
{{Note|1=NVIDIA のプロプライエタリドライバーを使用するハイブリッドグラフィックについては [[NVIDIA Optimus]] や [[Bumblebee]] を読んでください。他のハイブリッドグラフィック (AMD Radeon を使用する場合や Nouveau ドライバーで NVIDIA のカードを使う場合) については [[PRIME]] を読んでください。}}<br />
<br />
=== ディスクリート GPU の完全な電源オフ ===<br />
<br />
バッテリーの節約のためにグラフィックプロセッサーの電源をオフにしたい場合があるでしょう。この場合には以下の方法が可能です。<br />
<br />
==== bbswitch の使用 ====<br />
<br />
NVidia GPU を使っている場合、 [[bbswitch]] を利用するとより安全に電源の制御が行えます。[[bbswitch]] は ディスクリート GPU を必要ないとき、あるいはブート時に自動的に無効化するため、正しい ACPI の呼び出しを行うカーネルパッケージで構成されています。<br />
<br />
{{Note|カーネル 4.8 以降では PCI Express の電源管理が動作しません。[[Bumblebee#カーネル 4.8 で電源管理が機能しない]] を参照。}}<br />
<br />
==== acpi_call の使用 ====<br />
<br />
[[bbswitch]] がサポートしない GPU を使っている場合、あるいは他の選択肢として、 {{pkg|acpi_call}} パッケージをインストールすることで手動で行うことができます。<br />
<br />
{{Tip|[[公式リポジトリ]]に含まれていないカーネルを使っている場合、代わりに {{Pkg|acpi_call-dkms}} を使ってください。[[DKMS]] も見てください。}}<br />
<br />
パッケージをインストールしたらカーネルモジュールをロードしてください:<br />
<br />
# modprobe acpi_call<br />
<br />
カーネルモジュールをロードしたら次のスクリプトをダウンロードして、実行します:<br />
<br />
https://raw.githubusercontent.com/mkottman/acpi_call/master/examples/turn_off_gpu.sh<br />
<br />
スクリプトは全てのデータバスを検査して、それらの電源を切ろうと試みます。この際、以下のように出力されます:<br />
<br />
Trying \_SB.PCI0.P0P1.VGA._OFF: failed<br />
Trying \_SB.PCI0.P0P2.VGA._OFF: failed<br />
Trying \_SB_.PCI0.OVGA.ATPX: failed<br />
Trying \_SB_.PCI0.OVGA.XTPX: failed<br />
Trying \_SB.PCI0.P0P3.PEGP._OFF: failed<br />
Trying \_SB.PCI0.P0P2.PEGP._OFF: failed<br />
Trying \_SB.PCI0.P0P1.PEGP._OFF: failed<br />
Trying \_SB.PCI0.MXR0.MXM0._OFF: failed<br />
Trying \_SB.PCI0.PEG1.GFX0._OFF: failed<br />
Trying \_SB.PCI0.PEG0.GFX0.DOFF: failed<br />
Trying \_SB.PCI0.PEG1.GFX0.DOFF: failed<br />
'''Trying \_SB.PCI0.PEG0.PEGP._OFF: works!'''<br />
Trying \_SB.PCI0.XVR0.Z01I.DGOF: failed<br />
Trying \_SB.PCI0.PEGR.GFX0._OFF: failed<br />
Trying \_SB.PCI0.PEG.VID._OFF: failed<br />
Trying \_SB.PCI0.PEG0.VID._OFF: failed<br />
Trying \_SB.PCI0.P0P2.DGPU._OFF: failed<br />
Trying \_SB.PCI0.P0P4.DGPU.DOFF: failed<br />
Trying \_SB.PCI0.IXVE.IGPU.DGOF: failed<br />
Trying \_SB.PCI0.RP00.VGA._PS3: failed<br />
Trying \_SB.PCI0.RP00.VGA.P3MO: failed<br />
Trying \_SB.PCI0.GFX0.DSM._T_0: failed<br />
Trying \_SB.PCI0.LPC.EC.PUBS._OFF: failed<br />
Trying \_SB.PCI0.P0P2.NVID._OFF: failed<br />
Trying \_SB.PCI0.P0P2.VGA.PX02: failed<br />
Trying \_SB_.PCI0.PEGP.DGFX._OFF: failed<br />
Trying \_SB_.PCI0.VGA.PX02: failed<br />
<br />
"works" という文字はスクリプトが GPU が接続されているバスを発見して電源をオフにしたことを意味しています。バッテリーの持ちが良くなっているはずです。<br />
<br />
{{Tip| GPU を無効化した後に、システムのハイバーネートやサスペンドで問題があった場合には、適切な acpi_call を送出して有効化させることを試して下さい。こちらも参照してください [[電源管理#サスペンド/リジューム サービスファイル|サスペンド/リジューム サービスファイル]] 。}}<br />
<br />
===== GPU の電源を自動的にオフにする =====<br />
<br />
上記のままでは GPU プロセッサは再起動によって元に戻ります。これに対応するために、起動時にロードされるようにカーネルモジュールを追加してください:<br />
<br />
{{hc|/etc/modules-load.d/acpi_call.conf|<br />
#Load 'acpi_call.ko' at boot.<br />
acpi_call}}<br />
<br />
====== 起動時 ======<br />
<br />
起動時に GPU をオフにしたい場合、[[Systemd#一時ファイル|systemd-tmpfiles]]を使うことが可能です。<br />
<br />
{{hc|/etc/tmpfiles.d/acpi_call.conf|w /proc/acpi/call - - - - \\_SB.PCI0.PEG0.PEGP._OFF}}<br />
<br />
上記の設定は起動時に systemd によってロードされます。特定の OFF シグナルを {{ic|/proc/acpi/call}} ファイルに書き込んで電源を切っています。{{ic|\_SB.PCI0.PEG0.PEGP._OFF}} は適当な値に置き換えてください (バックスラッシュでエスケープする必要があります)。<br />
<br />
====== X サーバ初期化後 ======<br />
<br />
いくつかのシステムでは、ディスクリート GPU を X サーバの初期化の前に電源オフにすることで、システムが停止するかもしれません。<br />
このような場合、 X サーバの初期化が終わった後に GPU の電源を落すのがよいでしょう。これはいくつかのディスプレイマネージャでは可能で、例えば [[LightDM]] では、 ''display-setup-script'' seat configuration パラメータが root 権限で実行するスクリプトとして使えて、 GPU を無効化することができます。</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Intel_NUC&diff=18539
Intel NUC
2020-12-13T05:12:34Z
<p>Hiromi-mi: 誤字修正</p>
<hr />
<div>[[Category:メインボードと BIOS]]<br />
[[en:Intel NUC]]<br />
[https://en.wikipedia.org/wiki/Next_Unit_of_Computing Next Unit of Computing (NUC)] は Intel によって開発されたスモールフォームファクタ (SFF) PC です。NUC の第一世代は Sandy Bridge Celeron CPU を搭載しており、第二世代では CPU として Ivy Bridge Core i3 や Core i5 プロセッサが搭載されています。第三世代では Haswell アーキテクチャが使われています。NUC のマザーボードの寸法は 4 × 4 インチ (10.16 × 10.16 cm) です。<br />
<br />
ベアボーンキットはボードとファン付きのプラスチックケース、外部供給電源と VESA マウントプレートから成ります。Intel は CPU が組み込まれた NUC マザーボード単体も販売していますが、(2013年現在) NUC マザーボードの価格はベアボーンキットの値段とほとんど変わりません。サードパーティによる NUC ボードのケースも購入できます。<br />
<br />
== インストール ==<br />
<br />
通常の[[インストールガイド]]の手順に従ってください。<br />
<br />
インストールの前にボードの BIOS をアップデートすることを強く推奨します。詳しくは [https://www-ssl.intel.com/content/www/us/en/support/boards-and-kits/000005636.html Intel 公式の BIOS アップデートの説明] を読んでください。<br />
<br />
{{Note|BIOS を更新する前に、最新の BIOS バージョンと特定の NUC モデルで互換性に問題が発生してないかネット上の情報を検索してください。バージョンによってはリグレッションが発生することが確認されています。}}<br />
<br />
=== NVMe ===<br />
<br />
Intel NUC は PCIe M.2 インターフェイスに接続された NVMe をサポートします。[[ソリッドステートドライブ/NVMe]] を見てください。<br />
<br />
{{Tip|NVMe によってサポートされている場合や他のデバイスが PCIe スロットに接続されている場合、BIOS の ''Power'' セクションで ''Native ACPI OS PCIe Support'' を有効化することで使用電力を減らすことができる場合があります。}}<br />
<br />
=== グラフィック ===<br />
<br />
ほとんどの NUC には [[Intel Graphics]] が搭載されています。NUC モデルでグラフィックのハードウェアアクセラレーションを活用する方法は[[ハードウェアビデオアクセラレーション]]を見てください。<br />
<br />
==== Skylake ====<br />
<br />
最新のカーネルでは Skylake のサポートは安定しています。[[Intel Graphics#Skylake サポート]]を参照してください。<br />
<br />
=== ワイヤレス ===<br />
<br />
ほとんどの NUC のワイヤレスアダプダは特に設定をしなくても動作します。適切なファームウェアがロードされていることを確認してください。詳しくは[[ワイヤレス設定#iwlwifi]] を参照。<br />
<br />
=== LEDs ===<br />
<br />
一部の NUC には LED が搭載されており、カーネルドライバーの {{AUR|intel_nuc_led-dkms-git}} をインストールすることでソフトウェアから制御することができます [https://github.com/milesp20/intel_nuc_led]。使用するには、BIOS の ''Power'' 設定でソフトウェア制御を有効にしてください。<br />
<br />
== パフォーマンス ==<br />
<br />
=== 起動時間 ===<br />
<br />
BIOS の設定でレガシーブートを無効化して [[UEFI]] で起動することで起動時間を短縮できます。<br />
<br />
=== 4K ===<br />
<br />
4K のグラフィック出力をしたい場合、BIOS の設定を開いて ''Devices and Peripherals'' -> ''Video'' -> ''IGD Minimum Memory'' を 512 MB に設定して ''IGD Aperture Size'' を 1024 MB に設定してください。<br />
<br />
== 電源管理 ==<br />
<br />
消費電力を下げる設定については [[TLP]] や [[Powertop]] を参照してください。<br />
<br />
== トラブルシューティング ==<br />
<br />
=== オーディオプラグ ===<br />
<br />
[[PulseAudio#Switch on connect]] モジュールにはバグが存在し、プラグを切断したときに PulseAudio によって音声の再生が止まってしまい、Pulse の再起動が必要になることがあります。そのような問題が発生する場合、モジュールをコメントアウトしてください:<br />
<br />
{{hc|/etc/pulse/default.pa|<br />
#load-module module-switch-on-port-available<br />
}}<br />
<br />
=== TPM ===<br />
<br />
NUC デバイスには [[TPM]] 機能が存在しますが、{{ic|tpm_crb}} にあるバグが原因で現在は使えなくなっています [https://bugzilla.kernel.org/show_bug.cgi?id=98181][https://bugzilla.kernel.org/show_bug.cgi?id=111511]。Linux カーネル 4.6 でも Haswell の TPM を使用する方法はありませんが、関連するパッチが開発中です [https://lkml.org/lkml/2016/4/19/46]。<br />
<br />
=== 電源オフ ===<br />
<br />
シャットダウンの実行後も、青色の電源 LED が消えず NUC が完全にシャットダウン状態にならないことがあります。その場合、電源ボタンを数秒間押し続けてユニットの電源を切る必要があります。<br />
<br />
BIOS で wake-on-CIR (赤外線センサ) のオプションを全て無効化することでこの問題は解決します。場合によっては CIR センサを完全に無効化しないと直らない場合もあります。<br />
<br />
== 参照 ==<br />
<br />
* [https://communities.intel.com/community/tech/nuc Official Intel NUC Support Community]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Logitech_%E3%82%B2%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89&diff=18532
Logitech ゲーミングキーボード
2020-12-12T09:08:14Z
<p>Hiromi-mi: /* インストール */ g15stats プラグインはリンク切れしていない</p>
<hr />
<div>[[Category:キーボード]]<br />
[[en:Logitech Gaming Keyboards]]<br />
一部の Logitech (Logicool) 製のゲーミングキーボードは非公式のドライバーを使うことで Linux で使うことができます。以下のドライバーが存在します:<br />
* [https://sourceforge.net/projects/g15daemon/ g15daemon]<br />
* https://github.com/tolga9009/sidewinderd<br />
* https://github.com/Wattos/logitech-g710-linux-driver<br />
* https://github.com/MatMoul/g810-led<br />
<br />
== インストール ==<br />
<br />
{{Pkg|g15daemon}} は[[公式リポジトリ]]からインストールできます。G15daemon ドライバーの開発は2008年に止まってしまったため、ソースが公開されていて誰も開発を続けられる状態ではありますが、ずっと修正されていないバグが存在します。以下のドライバーは {{AUR|g15macro}} を使用して G キーを処理します。LCD ディスプレイにシステム情報を表示する {{AUR|g15stats}} プラグインも存在します。<br />
<br />
* {{AUR|sidewinderd}}<br />
* {{AUR|hid-lg-g710-plus-dkms-git}}<br />
<br />
== サポートされているモデル ==<br />
<br />
'''g15daemon''' は以下のモデルをサポートしています:<br />
<br />
*G15 (Orange と Blue)<br />
*G11<br />
*Gamepad<br />
*G510 (パッチをあてる必要があります。[https://bbs.archlinux.org/viewtopic.php?pid=1421825 フォーラムスレッド] を参照)<br />
<br />
[http://gnome15.org/ Gnome15] は以下のモデルをサポートしています:<br />
<br />
*G19<br />
*G19s<br />
*G15 (Orange と Blue)<br />
*G13<br />
*G110<br />
*G510 と G510s (部分的)<br />
<br />
{{AUR|sidewinderd}} は以下のモデルをサポートしています:<br />
* G710 / G710+<br />
* G105<br />
* Microsoft SideWinder X4 / X6<br />
<br />
{{AUR|hid-lg-g710-plus-dkms-git}} は以下のモデルをサポートしています:<br />
* Logitech G710 / G710+<br />
<br />
{{AUR|g810-led-git}} は以下のモデルをサポートしています:<br />
* G213<br />
* G410<br />
* G413<br />
* G610<br />
* G810<br />
* G910<br />
* GPRO</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Huawei_E1550_3G_%E3%83%A2%E3%83%87%E3%83%A0&diff=18521
Huawei E1550 3G モデム
2020-12-11T13:35:39Z
<p>Hiromi-mi: 英語版 en:Huawei E1550 3G modem 629181 に追従 (Success Storiesは意図的に翻訳せず)</p>
<hr />
<div>[[Category:モデム]]<br />
[[en:Huawei E1550 3G modem]]<br />
[[ru:USB 3G Modem]]<br />
この記事では Huawei E1550 3G モデムを設定する方法を説明します。以下の設定が必要です:<br />
* モデムモードに切り替える必要があります。<br />
* 適切なドライバー (usbserial) をロードする必要があります。<br />
<br />
== デバイスの準備 ==<br />
<br />
=== モデムモードに切り替える ===<br />
<br />
デフォルトではカーネルはモデムを USB ストレージデバイス (SCSI CD-ROM) として認識します。モデムには MicroSD カードリーダーと内部フラッシュが含まれているため間違いではありません。<br />
<br />
モデムにするには以下のコマンドを実行する必要があります:<br />
$ /lib/udev/usb_modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd<br />
<br />
[[公式リポジトリ]]の {{Pkg|usb_modeswitch}} も参照してください。udev-157 から modem-modeswitch は名前が変更され [https://git.kernel.org/?p=linux/hotplug/udev.git;a=commit;h=4dd9b291354e76f34b0d6d7b5c3b28d03a624418 コミット] で説明されているように変更が加えられました。このパッケージに修正は必要ありません。インストールするだけで使えます。<br />
<br />
また、udev の設定を作成する方法もあります:<br />
{{hc|/etc/udev/rules.d/15-huawei-e1550.rules|2=ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", RUN+="/lib/udev/usb_modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd"}}<br />
<br />
上記のファイルを作成すると、モデムの USB ID が {{ic|12d1:140c}} に変化し {{ic|/proc/bus/usb/devices}} は新しい USB エンドポイントを表示するようになります。<br />
<br />
=== ドライバーのロード ===<br />
<br />
モデムの適切なドライバーは usbserial ですが、モデムが認識されないため、ID を指定して強制的にロードする必要があります:<br />
# modprobe usbserial vendor=0x12d1 product=0x140c<br />
もしくは {{ic|/etc/modprobe.d/modprobe.conf}} に以下を記述してください:<br />
options usbserial vendor=0x12d1 product=0x140c<br />
既にロードされている場合は {{ic|rmmod usbserial}} を忘れずに実行してください。<br />
<br />
=== デバイスの命名 (任意) ===<br />
udev ルールを使って {{ic|ttyUSB*}} ポートのシンボリックリンクを作成することで設定を読みやすくすることができます。<br />
<br />
モード切替の後、USB ID {{ic|12D1:1001}} と認識される、シリアルポートが3つある Huawei デバイスの場合:<br />
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="00", ATTRS{bInterfaceProtocol}=="ff", SYMLINK+="ttyUSB_utps_modem"<br />
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="01", ATTRS{bInterfaceProtocol}=="ff", SYMLINK+="ttyUSB_utps_diag"<br />
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="02", ATTRS{bInterfaceProtocol}=="ff", SYMLINK+="ttyUSB_utps_pcui"<br />
<br />
モード切替の後、USB ID {{ic|12D1:1003}} と認識される、シリアルポートが2つある Huawei デバイスの場合:<br />
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1003*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="00", ATTRS{bInterfaceProtocol}=="ff", SYMLINK+="ttyUSB_utps_modem"<br />
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1003*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="01", ATTRS{bInterfaceProtocol}=="ff", SYMLINK+="ttyUSB_utps_pcui"<br />
<br />
== インターネットに接続 ==<br />
<br />
2つまたは3つの {{ic|/dev/ttyUSB*}} デバイスが追加されたはずです。最初のデバイス (他にデバイスがない場合は {{ic|ttyUSB0}}) が PPP 互換モデムです。pppd, kppp, gnome-ppp, network-manager などで普通に使ってください。<br />
<br />
{{Note|[[NetworkManager]] で 3G モデムを使用するには、{{Pkg|modemmanager}} パッケージをインストールして {{ic|NetworkManager.service}} を[[再起動]]する必要があります。その後 NetworkManager のアプレットで 'Enable Mobile Broadband' が選択できます。}}<br />
<br />
== AT コマンド ==<br />
有用なコマンド:<br />
* {{ic|1=AT^U2DIAG=0}} - the device is only Modem<br />
* {{ic|1=AT^U2DIAG=1}} - device is in modem mode + CD ROM<br />
* {{ic|1=AT^U2DIAG=255}} - the device in modem mode + CD ROM + Card Reader<br />
* {{ic|1=AT^U2DIAG=256}} - the device in modem mode + Card Reader<br />
* {{ic|1=AT+CPIN=<PIN-CODE>}} - enter PIN-code<br />
* {{ic|1=AT+CUSD=1,<PDU-encoded-USSD-code>,15}} - USSD request, result can be found (probably) in /dev/ttyUSB2.<br />
"*100#" を PDU 形式にエンコード:<br />
$ perl -e '@a=split(//,unpack("b*","*100#")); for ($i=7; $i < $#a; $i+=8) { $a[$i]="" } print uc(unpack("H*", pack("b*", join("", @a))))."\n"'<br />
PDU 形式の "AA180C3602" をデコード:<br />
$ perl -e '@a=split(//,unpack("b*", pack("H*","AA180C3602"))); for ($i=6; $i < $#a; $i+=7) {$a[$i].="0" } print pack("b*", join("", @a)).""'<br />
応答デコード (this example is balance response: 151.25):<br />
$ perl -e 'print pack("H*", "003100350031002C003200350020044004430431002E0020");'<br />
オペレーターによっては PDU でエンコードされた USSD が返ってきます。適切なデコード方法を確認してください。<br />
* {{ic|AT+CSQ}} - 信号品質を取得 (AT+CSQ=?)<br />
* {{ic|AT+GMI}} - メーカー名を取得<br />
* {{ic|AT+GMM}} - モデル名を取得<br />
* {{ic|AT+GMR}} - 型番を取得<br />
* {{ic|AT+GMN}} - IMEI を取得<br />
* {{ic|AT+COPS?}} - オペレーターの情報を取得<br />
* {{ic|1=AT^CARDLOCK="NCK-code"}} - モデムのロックを解除。NCK コードは IMEI で計算してください。ロック解除後あらゆる GSM プロパイダーでモデムが使えるようになります。<br />
* {{ic|1=AT^SYSCFG=mode, order, band, roaming, domain}} - システム設定<br />
<br />
Mode:<br />
* 2 Automatic search<br />
* 13 2G ONLY<br />
* 14 3G ONLY<br />
* 16 No change<br />
<br />
Order:<br />
* 0 Automatic search<br />
* 1 2G first, then 3G<br />
* 2 3G first, then 2G<br />
* 3 No change<br />
<br />
Band:<br />
* 80 GSM DCS systems<br />
* 100 Extended GSM 900<br />
* 200 Primary GSM 900<br />
* 200000 GSM PCS<br />
* 400000 WCDMA IMT 2000<br />
* 3FFFFFFF Any band<br />
* 40000000 No change of band<br />
<br />
Roaming:<br />
* 0 Not supported<br />
* 1 Roaming is supported<br />
* 2 No change<br />
<br />
Domain:<br />
* 0 CS_ONLY<br />
* 1 PS_ONLY<br />
* 2 CS_PS<br />
* 3 ANY<br />
* 4 No change<br />
<br />
== SMS の送信 ==<br />
<br />
gammu を使うことができます。<br />
<br />
{{ic|~/.gammurc}} を編集:<br />
[gammu]<br />
port=/dev/ttyUSB0<br />
connection=at<br />
name=huawei e1550<br />
model=<br />
<br />
設定ファイルを自動生成することもきます:<br />
$ gammu-detect > ~/.gammurc<br />
<br />
実行コマンド:<br />
# gammu sendsms TEXT +7123456789 -text qwe<br />
<br />
デバイス情報を得るには:<br />
# gammu identify<br />
<br />
GUI フロントエンドには {{AUR|wammu}} や {{Pkg|modem-manager-gui}} があります。<br />
<br />
== USSD リクエスト ==<br />
<br />
[https://github.com/gnomeby/ussd ussd] ツールを使ってください。<br />
<br />
== 参照 ==<br />
* [[USB 3G モデム]]<br />
* [[en2:Huawei E220|Huawei E220]]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=CurlFtpFS&diff=18516
CurlFtpFS
2020-12-10T07:12:24Z
<p>Hiromi-mi: 英語版 en:Special:PermanentLink/631025 に追従</p>
<hr />
<div>[[Category:FUSE]]<br />
[[Category:File Transfer Protocol]]<br />
[[en:CurlFtpFS]]<br />
[[zh-hans:CurlFtpFS]]<br />
{{Related articles start}}<br />
{{Related|アプリケーション一覧/インターネット#FTP クライアント}}<br />
{{Related articles end}}<br />
<br />
{{Note|2015年2月現在、curlftpfs は動作が極端に遅くなることがあるという報告があります。[https://bugs.launchpad.net/ubuntu/+source/curlftpfs/+bug/1267749 Ubuntu のバグレポート] や [https://stackoverflow.com/questions/24360479/ftp-with-curlftpfs-is-extremely-slow-to-the-point-it-is-impossible-to-work-with stackoverflow.com の質問] を参照。}}<br />
<br />
[http://curlftpfs.sourceforge.net/ CurlFtpFS] は [[FUSE]] と libcurl によって FTP ホストにアクセスするファイルシステムです。<br />
<br />
== インストール ==<br />
<br />
{{Pkg|curlftpfs}} パッケージを[[インストール]]してください。<br />
<br />
必要であれば、fuse を起動してください:<br />
# modprobe fuse<br />
<br />
== root で FTP フォルダをマウント ==<br />
<br />
マウントポイントを作成して FTP フォルダをマウント:<br />
# mkdir /mnt/ftp<br />
# curlftpfs ftp.yourserver.com /mnt/ftp/ -o user=username:password<br />
他のユーザーにアクセス権限を与えたい場合、{{ic|allow_other}} オプションを使います:<br />
# curlftpfs ftp.yourserver.com /mnt/ftp/ -o user=username:password,allow_other<br />
カンマの後に空白を追加してはいけません。{{ic|allow_other}} 引数が認識されなくなります。<br />
<br />
アクティブモードで FTP を使いたい場合は 'ftp_port=-' オプションを追加します:<br />
# curlftpfs ftp.yourserver.com /mnt/ftp/ -o user=username:password,allow_other,ftp_port=-<br />
<br />
{{ic|/etc/fstab}} に以下の行を追加すると自動でマウントすることができます:<br />
curlftpfs#USER:PASSWORD@ftp.domain.org /mnt/mydomainorg fuse auto,user,uid=1000,allow_other,_netdev 0 0<br />
<br />
{{Tip|1=UTF-8 をサポートしていないサーバーで英語以外の文字列に問題が発生する場合は codepage="''string''" を使ってみてください (例: codepage="iso8859-1")。}}<br />
<br />
プロセスリストにパスワードが表示されないようにするには、curlftpfs を動作させるユーザーのホームディレクトリに以下の内容の {{ic|.netrc}} を作成して {{ic|chmod 600}} を実行してください:<br />
<br />
machine ftp.yourserver.com<br />
login username<br />
password mypassword<br />
<br />
== 通常ユーザーで FTP フォルダをマウント ==<br />
<br />
通常ユーザーでマウントすることも可能です ({{ic|.netrc}} ファイルと ssl 暗号化を常に使うようにしてください):<br />
$ mkdir ~/my-server<br />
<nowiki>$ curlftpfs -o ssl,utf8 ftp://my-server.tld/ ~/my-server</nowiki><br />
以下のように返ってくる場合:<br />
Error connecting to ftp: QUOT command failed with 500<br />
サーバーが {{ic|utf8}} オプションに対応していません。それ以外は問題ありません。<br />
{{Tip|1=必要であれば {{ic|1=-o codepage="iso8859-1"}} などとエンコーディングを設定してみてください。}}<br />
<br />
アンマウントするには:<br />
$ fusermount -u ~/my-server<br />
<br />
== 暗号化サーバーに接続 ==<br />
デフォルト設定では CurlFtpFS は暗号化されていない接続ポートに接続するとき平文で認証します。リモートサーバーが暗号化されない認証方式を拒否するように設定していた場合、CurlFtpFS は以下のようにエラーを吐きます:<br />
Error connecting to ftp: Access denied: 530<br />
<br />
暗号化認証を使って ftp サーバーに接続するには、ssl あるいは tsl オプションを指定する必要があります:<br />
# curlftpfs ftp.yourserver.com /mnt/ftp/ -o ssl,user=username:password<br />
<br />
コンピュータが信頼していない自己署名証明書を使っているサーバーに接続する場合、無視するように指定します:<br />
# curlftpfs ftp.yourserver.com /mnt/ftp/ -o ssl,no_verify_peer,no_verify_hostname,user=username:password<br />
<br />
暗示的な tsl モードも使えます。詳しくはマニュアルページ {{man|1|curlftpfs}} を見てください。<br />
<br />
<br />
== トラブルシューティング ==<br />
=== ファイル名に '#' が含まれたファイルにアクセスできない ===<br />
<br />
[https://bugs.launchpad.net/ubuntu/+source/curlftpfs/+bug/783033 Launchpad bug 783003] として報告されていますが、2020年時点では動きがありません。[https://sourceforge.net/p/curlftpfs/bugs/54/ 上流のバグ報告]には[https://github.com/jomat/curlftpfs 非公式なパッチ]が紹介されています。</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=MongoDB&diff=18499
MongoDB
2020-12-09T04:24:39Z
<p>Hiromi-mi: mongodb-bin への言及と mongodb パッケージの注意点を追加</p>
<hr />
<div>[[Category:データベース管理システム]]<br />
[[en:MongoDB]]<br />
[[zh-hans:MongoDB]]<br />
MongoDB (由来は hu'''mongo'''us から) はオープンソースのドキュメント指向データベースです。[http://www.mongodb.com/ MongoDB Inc. (旧 10gen)] によって開発・サポートされています。MongoDB はデータベースシステムの NoSQL ファミリーの一員です。"古典的"なリレーショナルデータベースでそうあるように、データをテーブルに保存する代わりに、MongoDB は動的なスキーマ (MongoDB では [http://bsonspec.org/ BSON] と呼称されるフォーマット) によって JSON ライクなドキュメントとして構造的データを保存して、特定のタイプのアプリケーションでデータを簡単かつ高速に扱えるようにします。<br />
<br />
== インストール ==<br />
<br />
{{Warning|事前に {{AUR|mongodb}} パッケージのコメントを確認することを推奨します。}}<br />
{{AUR|mongodb}} あるいは {{AUR|mongodb-bin}} パッケージをインストールしてください。また、{{AUR|mongodb-tools}} か {{AUR|mongodb-tools-bin}} をインストールすることで {{ic|mongoimport}}, {{ic|mongoexport}}, {{ic|mongodump}}, {{ic|mongorestore}} などのツールを使うことができます。<br />
<br />
{{Note|{{AUR|mongodb}} パッケージを [[AUR ヘルパー]] や [[makepkg]] を使いインストールするには 260GB 以上の空き容量が、{{Pkg|devtools}} を使ったインストールには 20GB 程度の空き容量が必要です。}}<br />
<br />
{{ic|mongodb.service}} デーモンを[[systemd#ユニットを使う|起動・有効化]]します。<br />
<br />
mongodb サービスの最初の起動時に、巨大なファイルが作成され、(ジャーナルなどのデータのための) 予約領域が割り当てられます [https://docs.mongodb.com/manual/faq/storage/#preallocated-data-files]。ファイルの作成には時間がかかり、その間、データベースシェルを使うことはできません。<br />
<br />
== 使用方法 ==<br />
<br />
データベースシェルにアクセスするには、ターミナルに以下を入力:<br />
<br />
$ mongo<br />
<br />
== トラブルシューティング ==<br />
<br />
=== MongoDB が起動しない ===<br />
<br />
データベースのパスが正しく設定されているか確認してください:<br />
<br />
$ cat /usr/lib/systemd/system/mongodb.service<br />
<br />
"ExecStart" 行に "--dbpath /var/lib/mongodb" を追加してください:<br />
<br />
ExecStart=/usr/bin/numactl --interleave=all mongod --quiet --config /etc/mongodb.conf --dbpath /var/lib/mongodb<br />
<br />
最低でも (ジャーナルファイル用の) 3GB の空き容量があることを確認してください。容量が足りない場合 MongoDB が起動できないことがあります (その場合ユーザーにメッセージは表示されません):<br />
<br />
$ df -h /var/lib/mongodb/<br />
<br />
ロックファイルが存在しないかどうか確認:<br />
<br />
# ls -lisa /var/lib/mongodb<br />
<br />
ロックファイルが存在する場合、{{ic|mongodb.service}} を停止してください。データベースのパスを指定してデータベースの修復を実行します (Arch Linux では {{ic|/var/lib/mongodb/}} がデフォルトの --dbpath です):<br />
<br />
# mongod --dbpath /var/lib/mongodb/ --repair<br />
<br />
修復が完了すると、dbpath に修復されたデータファイルと空の mongod.lock ファイルが作られます。<br />
<br />
{{Warning|ファイルを削除して、破損したファイルを使ってデータベースを起動して、データベースからデータの復旧を試みることもできます。ただし、データベースの状態を予想することはできません。詳しくは [https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/ 上流のドキュメント] を見てください。}}<br />
<br />
root で修復を実行後、ファイルの所有者は root ユーザーになりますが、Arch Linux は別のユーザーで MongoDB を実行します。chown を使ってファイルの所有者を適切なユーザーに戻す必要があります (詳しくは [http://earlz.net/view/2011/03/11/0015/mongodb-and-arch-linux こちら] を参照):<br />
<br />
# chown -R mongodb: /var/{log,lib}/mongodb/<br />
<br />
mongodb の [https://docs.mongodb.com/manual/reference/configuration-options/ ドキュメント] から設定ファイルをコピーした場合、以下の2行を削除して {{ic|mongodb.service}} を再起動してください:<br />
{{hc|/etc/mongodb.conf|<nowiki><br />
processManagement:<br />
fork: true<br />
</nowiki>}}<br />
<br />
=== transparent_hugepage のカーネル設定について MongoDB がエラーを吐く ===<br />
<br />
MongoDB の起動後、transparent_hugepage に関する警告が表示される場合、以下のファイルを編集することでシステム設定を永続的に無効化することができます ([https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html FreeDesktop tmpfiles.d マニュアル] を参照):<br />
<br />
{{hc|/etc/tmpfiles.d/local.conf|<nowiki><br />
w /sys/kernel/mm/transparent_hugepage/enabled - - - - never<br />
w /sys/kernel/mm/transparent_hugepage/defrag - - - - never<br />
</nowiki>}}<br />
<br />
[[sysctl]] を使ったり以下のように echo コマンドを使うことで一時的に無効化することもできます:<br />
<br />
# echo never > /sys/kernel/mm/transparent_hugepage/enabled<br />
# echo never > /sys/kernel/mm/transparent_hugepage/defrag</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Umask&diff=18461
Umask
2020-12-06T12:12:22Z
<p>Hiromi-mi: 英語版 en:Special:PermanentLink/626537 に追従</p>
<hr />
<div>[[Category:セキュリティ]]<br />
[[Category:ファイルシステム]]<br />
[[Category:コマンド]]<br />
[[en:Umask]]<br />
[[es:Umask]]<br />
[[pt:Umask]]<br />
[[ru:Umask]]<br />
{{Related articles start}}<br />
{{Related|ファイルのパーミッションと属性}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:umask|umask]] ユーティリティはファイル作成モードマスクを制御するのに使われます。モードマスクは新しく作成されたファイルのファイルパーミッションの初期値を決定します。このユーティリティの挙動は [[wikipedia:ja:POSIX|POSIX]] によって仕様化されており、[https://pubs.opengroup.org/onlinepubs/9699919799/utilities/umask.html POSIX のプログラマーマニュアル] に解説があります。''umask'' はシェルの実行環境に影響を与えるため、基本的にシェルのビルトインコマンドとして実装されます。<br />
<br />
== モードマスクの意味 ==<br />
<br />
モードマスクには新しく作成されたファイルに設定される'''べきではない'''パーミッションビットが記述されます。つまり新しく作成されたファイルには[[Wikipedia:ja:否定|全く逆]]のパーミッションビットが設定されます。マスクで何らかのビットが {{ic|1}} に設定されていれば、新しく作成したファイルの該当パーミッションは無効になります。マスクはパーミッションビットを取り除くフィルターとして機能し、ファイルのデフォルト権限を設定するのに役立ちます。<br />
<br />
新しく作成されたファイルに設定されるパーミッションビットの値は論理[[wikipedia:Material nonimplication|非含意]] (付加) を使って計算され、論理記号で表現することができます:<br />
<br />
R: (D & (~M))<br />
<br />
つまり、最終的なパーミッション {{ic|R}} はデフォルトのパーミッション {{ic|D}} の[[wikipedia:ja:論理積|論理積]]とファイル作成時のモードマスク {{ic|M}} の[[wikipedia:ja:ビット演算|論理否定]]が合わさった結果になります。<br />
<br />
{{Note|<br />
* Linux ではファイルを作成するときに実行権限を付与することはできません。実際、ディレクトリ作成時のデフォルトのパーミッションは 777 ですが、ファイルの場合は 666 となっています。<br />
* Linux では、マスクのファイルパーミッションビットだけが使われます ({{man|2|umask}} を参照)。マスクの ''suid'', ''sgid'', ''sticky'' ビットは無視されます。<br />
}}<br />
<br />
例えば、ファイル作成モードマスクが 027 だとします。それぞれの数字は以下を表します:<br />
<br />
* 0 は新しく作成したファイルに設定されない ''user'' パーミッションビットです。<br />
* 2 は新しく作成したファイルに設定されない ''group'' パーミッションビットです。<br />
* 7 は新しく作成したファイルに設定されない ''other'' パーミッションビットです。<br />
<br />
新しく作成したファイルの所有者がユーザー {{ic|User1}} で所有グループがグループ {{ic|Group1}} の場合、下にある表と照合すれば、{{ic|User1}} は新しく作成されたファイルに対して全ての権限を得ることになり (8進数で7)、{{ic|Group1}} グループの他のユーザーは書き込み権限がなく (8進数で5)、その他のユーザーは新しく作成したファイルを扱う権限が全くないことがわかります (8進数で0)。つまり、027 マスクで作成されたファイルのパーミッションは 750 になります。<br />
<br />
{| class="wikitable"<br />
|+<br />
! 8進数 !! バイナリ !! 意味<br />
|-<br />
| 0 || 000 || 権限なし<br />
|-<br />
| 1 || 001 || 実行のみ<br />
|-<br />
| 2 || 010 || 書き込みのみ<br />
|-<br />
| 3 || 011 || 書き込みと実行<br />
|-<br />
| 4 || 100 || 読み込みのみ<br />
|-<br />
| 5 || 101 || 読み込みと実行<br />
|-<br />
| 6 || 110 || 読み書き<br />
|-<br />
| 7 || 111 || 読み書き実行<br />
|}<br />
<br />
== 現在のマスクの値を表示 ==<br />
<br />
現在のマスクを表示するには、何も引数を付けずに ''umask'' を実行します。デフォルトの出力スタイルは実装によりますが、基本的に8進数で表示されます:<br />
<br />
{{hc|$ umask|0027}}<br />
<br />
POSIX によって標準化されている {{ic|-S}} オプションを使った場合、記号表記でマスクが表示されます。ただし、記号表記の値は8進数の逆の値 (つまり新しく作成したファイルに設定されるパーミッションビット) になるので注意してください:<br />
<br />
{{hc|$ umask -S|2=<br />
u=rwx,g=rx,o=<br />
}}<br />
<br />
== マスクの値を設定 ==<br />
<br />
{{Note|Umask の値はケースバイケースで設定してください。例えば、デスクトップユーザーは他のユーザーからファイルにアクセスできないようにホームフォルダの制限を厳しくすると良いでしょう ({{ic|useradd -m}} では {{ic|chmod 700}} が適用されます)。他のユーザーとファイルを共有する場合やファイルを公開する場合 ([[Apache]] を使用する場合) などは umask の制限を緩めるべきです。}}<br />
<br />
umask の値は ''umask'' コマンドで設定することができます。モードマスクを指定するのに使う文字列は [[chmod]] でモードを指定する時と同じ構文ルールに従っています (詳しくは [http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html#tag_20_17_13 POSIX Programmer's Manual] を参照)。<br />
<br />
システム全体の umask の値は {{ic|/etc/profile}} や {{ic|/etc/bash.bashrc}} などのデフォルト[[シェル]]設定ファイルで設定することができます。(Arch を含む [https://github.com/archlinux/svntogit-packages/blob/packages/filesystem/trunk/profile /etc/profile]) ほとんどの Linux ディストリビューションはデフォルト値を {{ic|022}} に設定しています。{{ic|pam_umask.so}} で umask を設定することもできますが、{{ic|/etc/profile}} などによって上書きされる可能性があります。<br />
<br />
別の値を設定する必要がある場合、ファイルを直接編集するか (全てのユーザーに影響を与えます)、ユーザーのシェル設定ファイル (例: {{ic|~/.bashrc}}) から ''umask'' を呼び出すようにすることでユーザーの umask だけを変更することができます。ただし、変更は次のログイン時から適用されます。現在のセッション中のみ umask を変更したい場合、''umask'' を実行して設定したい値を入力してください。例えば {{ic|umask 077}} を実行すると新しいファイルに読み書き権限が付与され、新しいフォルダには読み書き実行権限が付与されます。<br />
<br />
== 参照 ==<br />
<br />
* POSIX プログラマーマニュアル:<br />
** [http://pubs.opengroup.org/onlinepubs/9699919799/utilities/umask.html umask] ({{man|1p|umask}} でも閲覧できます)<br />
** [http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html#tag_20_17_13 chmod (extended description)] ({{man|1p|chmod}} でも閲覧できます)<br />
* [https://blogs.gentoo.org/mgorny/2011/10/18/027-umask-a-compromise-between-security-and-simplicity/ 027 umask: a compromise]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Nouveau&diff=18259
Nouveau
2020-11-20T07:38:41Z
<p>Hiromi-mi: /* トラブルシューティング */ 英語版 640573 に追従</p>
<hr />
<div>[[Category:グラフィック]]<br />
[[Category:X サーバー]]<br />
[[en:Nouveau]]<br />
[[es:Nouveau]]<br />
[[it:Nouveau]]<br />
[[ru:Nouveau]]<br />
[[zh-hans:Nouveau]]<br />
{{Related articles start}}<br />
{{Related|NVIDIA}}<br />
{{Related|Xorg}}<br />
{{Related|Bumblebee}}<br />
{{Related articles end}}<br />
<br />
この記事は NVIDIA カードのオープンソースドライバー [https://nouveau.freedesktop.org/ Nouveau] のインストールと設定を説明しています。公式のプロプライエタリドライバーの情報は [[NVIDIA]] を見てください。<br />
<br />
== インストール ==<br />
<br />
先に進む前に、あなたの使っているカードの [https://nouveau.freedesktop.org/wiki/CodeNames コードネーム] (もっと詳しいリストが [[Wikipedia:Comparison of Nvidia Graphics Processing Units|Wikipedia]] にあります) を確認して [https://nouveau.freedesktop.org/wiki/FeatureMatrix/ feature matrix] を見てあなたのグラフィックカードでサポートされている機能をチェックしてください。また、[[Xorg]] が正しくインストールされているか確認してください。<br />
<br />
3D アクセラレーションのための DRI ドライバを提供する {{Pkg|mesa}} を[[インストール]]してください。<br />
<br />
* x86_64 環境で32ビットのアプリケーションのサポートが必要な場合、[[multilib]] から {{Pkg|lib32-mesa}} もインストールしてください。<br />
* (Xorg における 2D アクセラレーションを提供する) DDX ドライバーは {{Pkg|xf86-video-nouveau}} パッケージで[[pacman|インストール]]してください。<br />
<br />
[[ハードウェアビデオアクセラレーション]]も見てください。<br />
<br />
{{Note|3D ドライバーのバグを報告する前に [https://nouveau.freedesktop.org/wiki/MesaDrivers Nouveau MesaDrivers page] を見て下さい。}}<br />
<br />
== ロード ==<br />
<br />
システムの起動時に Nouveau のカーネルモジュールは自動的にロードされます。<br />
<br />
ロードされない場合:<br />
<br />
* [[カーネルパラメータ]]に {{ic|nomodeset}} や {{ic|1=vga=}} を設定して'''いない'''ことを確認してください。Nouveau を正しく動かすためにはカーネルモードセッティングが必要です (下を参照)。<br />
* また、{{ic|/etc/modprobe.d/}} や {{ic|/usr/lib/modprobe.d/}} の中で modprobe のブラックリストによって Nouveau が無効になっていないか確認してください。<br />
* 上記全てを確認しても nouveau がロードされない場合は dmesg で opcode エラーが起こってないか確認してください。{{ic|1=nouveau.config=NvBios=PRAMIN}} を[[カーネルパラメータ]]に追加することでモジュールのアンロードを防ぐことができます [https://nouveau.freedesktop.org/wiki/TroubleShooting/#index10h3]。<br />
<br />
=== KMS ===<br />
<br />
{{Tip|解像度に問題がある場合、[[Kernel Mode Setting#モードの強制と EDID]] をチェックしてください。}}<br />
<br />
Nouveau ドライバーを使うには [[Kernel Mode Setting]] (KMS) が必要です。システムが起動すると、KMS がディスプレイドライバーを初期化するときに解像度が変わります。"Late start" モードで KMS を初期化するのに必要なのは Nouveau ドライバーのインストールだけです (下を参照)。詳しくは [https://nouveau.freedesktop.org/wiki/KernelModeSetting Nouveau KernelModeSetting のページ] を見て下さい。<br />
<br />
{{Note|ブートプロセスの間に見苦しい解像度変更がないため early start の方が好ましいかもしれません。}}<br />
<br />
==== Late start ====<br />
<br />
この方法では他のカーネルモジュールがロードされた後に KMS を起動します。"Loading modules" の文字が表示されてテキストのサイズが変わります。ちらつきが発生するかもしれません。<br />
<br />
==== Early start ====<br />
<br />
この方法では [[mkinitcpio|initramfs]] がロードされた時に、ブートプロセスで出来るだけ早く KMS を起動します。<br />
<br />
{{ic|nouveau}} を {{ic|/etc/mkinitcpio.conf}} の {{ic|MODULES}} 行に追加して下さい:<br />
<br />
MODULES="... nouveau ..."<br />
<br />
カスタム EDID ファイルを使っている場合、同じように initramfs に埋め込む必要があります:<br />
<br />
{{hc|/etc/mkinitcpio.conf|<br />
2=FILES="/lib/firmware/edid/your_edid.bin"}}<br />
<br />
initial ramdisk イメージを再生成してください:<br />
<br />
# mkinitcpio -p <kernel preset; e.g. ''linux''><br />
<br />
Nouveau に問題が発生してテスト目的に nouveau-drm を複数回リビルドする場合、initramfs に {{ic|nouveau}} は追加しないでください。initramfs を再生成するのは忘れやすいためテストするのが面倒くさくなります。システムが安定したと確証を得るまでは "Late start" を使いましょう。(通常は推奨されない) カスタムファームウェアが必要な場合、initramfs で問題が別に発生することもあります。<br />
<br />
== ヒントとテクニック ==<br />
<br />
=== NVIDIA ドライバーをインストールしたままにしておく ===<br />
<br />
プロプライエタリの NVIDIA ドライバーをアンインストールしたくないが、Nouveau ドライバーを使いたい場合、{{ic|/etc/modprobe.d/nouveau_blacklist.conf}} や {{ic|/usr/lib/modprobe.d/nvidia.conf}} 内の nouveau のブラックリストを以下のように修正してコメントアウトしてください:<br />
<br />
#blacklist nouveau<br />
<br />
そして以下の内容で {{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} ファイルを作成して Xorg に nvidia の代わりに nouveau をロードするよう指定してください:<br />
<br />
Section "Device"<br />
Identifier "Nvidia card"<br />
Driver "nouveau"<br />
EndSection<br />
<br />
既に NVIDIA ドライバーを使用していて、再起動せずに Nouveau をテストしたい場合、'nvidia' モジュールをアンロードしてください:<br />
<br />
# rmmod nvidia<br />
<br />
次に 'nouveau' モジュールをロードしてください:<br />
<br />
# modprobe nouveau<br />
<br />
そしてカーネルメッセージを見て正しくロードされていることを確認してください:<br />
<br />
$ dmesg<br />
<br />
=== 最新の開発パッケージをインストールする ===<br />
<br />
AUR を通して、最新の -git パッケージをインストールすることができます:<br />
<br />
* {{AUR|mesa-git}} を使うことで (最新の DRI ドライバーを含む) 最新の Mesa をインストールすることができます。<br />
* {{AUR|linux-mainline}} などのパッケージを使って新しいカーネルバージョンをインストールすることで、Nouveau DRM コードのパフォーマンスが向上するかもしれません。<br />
* 最新の Nouveau を使うには、AUR の {{AUR|linux-git}} パッケージを使用して、PKGBUILD を編集し Nouveau のカーネルリポジトリ (現在は git://anongit.freedesktop.org/git/nouveau/xf86-video-nouveau にあります) を使う必要があります。<br />
<br />
上流のドライバーソースは [https://nouveau.freedesktop.org/wiki/Source Nouveau Source のページ] にあります。<br />
<br />
=== ティアリングフリーのコンポジット ===<br />
<br />
{{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} を編集して、以下を {{ic|Device}} セクションに追加して下さい:<br />
<br />
Section "Device"<br />
Identifier "nvidia card"<br />
Driver "nouveau"<br />
Option "GLXVBlank" "true"<br />
EndSection<br />
<br />
=== デュアルディスプレイ ===<br />
<br />
Nouveau は xrandr 拡張を使ってモードセッティングやマルチモニターをサポートしています。チュートリアルは [[xrandr]] のページを見て下さい。<br />
<br />
以下は dual head モードで2つのモニターを動かすための {{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} の完全なサンプルです。GNOME Control Center の Display パネル ({{ic|gnome-control-center display}}) などグラフィカルツールを使ってモニタの設定をすることも可能です。<br />
<br />
{{bc|<br />
# the right one<br />
Section "Monitor"<br />
Identifier "NEC"<br />
Option "PreferredMode" "1280x1024_60.00"<br />
EndSection<br />
<br />
# the left one<br />
Section "Monitor"<br />
Identifier "FUS"<br />
Option "PreferredMode" "1280x1024_60.00"<br />
Option "LeftOf" "NEC"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "nvidia card"<br />
Driver "nouveau"<br />
Option "Monitor-DVI-I-1" "NEC"<br />
Option "Monitor-DVI-I-2" "FUS"<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "screen1"<br />
Monitor "NEC"<br />
DefaultDepth 24<br />
SubSection "Display"<br />
Depth 24<br />
Virtual 2560 2048<br />
EndSubSection<br />
Device "nvidia card"<br />
EndSection<br />
<br />
Section "ServerLayout"<br />
Identifier "layout1"<br />
Screen "screen1"<br />
EndSection}}<br />
<br />
=== コンソールの解像度を設定する ===<br />
<br />
{{Pkg|fbset}} ツールを使ってコンソールの解像度を調整してください。<br />
<br />
また、{{ic|1=video=}} カーネルラインオプションを使うことで nouveau に解像度を渡すことができます ([[Kernel Mode Setting|KMS]] を参照してください)。<br />
<br />
=== 電源管理 ===<br />
<br />
nouveau ドライバーには正しい電源管理機能が実装されていないため、グラフィックカードの周波数は低い状態でロックされてパフォーマンスが思うほど出ない場合があります。カードによっては GPU のオーバークロックが実験的にサポートされています ([https://nouveau.freedesktop.org/wiki/PowerManagement Nouveau の電源管理についてのページ] を見てください)。カーネル 4.5 から {{ic|/sys/kernel/debug/dri/*/pstate}} の debugfs インターフェイスを使って制御できるようになっています。<br />
<br />
例えば、使用しているカードの現在の設定と電源状態を確認するには:<br />
<br />
# cat /sys/kernel/debug/dri/0/pstate<br />
<br />
以下のコマンドを実行することで電源状態を手動で設定できます:<br />
<br />
# echo ''pstate'' > /sys/kernel/debug/dri/0/pstate<br />
<br />
{{Warning|上記の設定は実験的です。システムがフリーズしたり、カードがオーバーヒットして破壊される可能性があります。}}<br />
<br />
==== ファンの制御 ====<br />
<br />
{{Warning|設定は自己責任です。カードを過熱しすぎないように注意してください。}}<br />
<br />
{{ic|/sys}} を使ってファンの制御を設定できる場合があります:<br />
<br />
$ find /sys -name pwm1_enable<br />
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon1/pwm1_enable<br />
$ readlink /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/driver<br />
../../../../bus/pci/drivers/nouveau<br />
<br />
{{ic|pwm1_enable}} は 0, 1, 2 に設定できます。それぞれ NONE, MANUAL, AUTO を意味します。ファン制御を手動で設定する場合、{{ic|pwm1}} を設定する必要があります。例えば 40 にすれば速度が 40% になります。<br />
<br />
udev ルールを使って設定することもできます:<br />
$ cat /etc/udev/rules.d/50-nouveau-hwmon.rules<br />
ACTION=="add", SUBSYSTEM=="hwmon", DRIVERS=="nouveau", ATTR{pwm1_enable}="2"<br />
<br />
ソース:<br />
* http://floppym.blogspot.de/2013/07/fan-control-with-nouveau.html<br />
* https://kalgan.cc/blog/posts/Controlling_nVidia_cards_fans_with_nouveau_in_Debian/<br />
<br />
=== Optimus ===<br />
<br />
ラップトップで [[NVIDIA Optimus|Optimus]] (ラップトップに2つの GPU を載せているハイブリッドグラフィック) を使う方法は2つあります: [[bumblebee]] と [[PRIME]]<br />
<br />
=== 垂直同期 ===<br />
<br />
Xorg コンポジタは Nouveau で問題が起きやすくなっています。他のコンポジタと異なり、[[Picom]] はちらつきを起こさないようにするためのオプションが多数存在します。上手く動作する設定例:<br />
picom -b --paint-on-overlay --unredir-if-possible --backend xr_glx_hybrid --vsync drm --glx-swap-method -1 --glx-no-stencil<br />
{{Tip|コンポジタを使う場合、デスクトップ環境のウィンドウマネージャ (KWin など) のコンポジット機能をオフにしてください。}}<br />
<br />
== トラブルシューティング ==<br />
{{ic|1=drm.debug=14}} や {{ic|1=log_buf_len=16M}} を[[カーネルパラメータ]]に追加してビデオデバッグを有効にしてください。<br />
<br />
Xorg の詳細ログを作成する:<br />
$ startx -- -logverbose 9 -verbose 9<br />
<br />
ロードされているビデオモジュールのパラメータと値を見る:<br />
$ modinfo -p video<br />
<br />
===MSI の無効化===<br />
モジュールがロードされなかったり X サーバーが起動しない場合、[[カーネルパラメータ]]に {{ic|1=nouveau.config=NvMSI=0}} を追加してみてください。<br />
<br />
ソース: https://bugs.freedesktop.org/show_bug.cgi?id=78441<br />
<br />
===間違った出力端子が検出される問題===<br />
<br />
nouveau ドライバーでは"幻影"の出力端子が検出されることがあります。例えば、LVDS-1 しか存在しないのに VGA-1 と LVDS-1 が接続されていると表示されることがあります。<br />
<br />
ディスプレイに影響して画面が崩れたり、ノートパソコンで蓋を閉じた時にスリープされない問題が生じます。<br />
<br />
==== カーネルパラメータ ====<br />
<br />
ブートローダーのカーネルコマンドラインで問題の出力端子 (以下の例では VGA-1) を無効化することで解決できます。以下のように追加してください:<br />
<br />
video=VGA-1:d<br />
<br />
'''d''' = disable です。<br />
<br />
nouveau カーネルモジュールには TV 出力の検知を無効化するオプションがあります:<br />
tv_disable = 1<br />
<br />
==== Xorg の設定 ====<br />
{{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} に以下を追加することで [[Xorg]] で幻影の出力端子を無効化することもできます:<br />
<br />
Section "Monitor"<br />
Identifier "VGA-1"<br />
Option "Ignore" "1"<br />
EndSection<br />
<br />
ソース: http://gentoo-en.vfose.ru/wiki/Nouveau#Phantom_and_unpopulated_output_connector_issues<br />
<br />
==== Xrandr を使う ====<br />
<br />
[[Xrandr]] で幻影の出力端子を無効化することもできます:<br />
$ xrandr --output VGA-1 --off<br />
<br />
{{Tip|この設定を [[xinit]] に記述することもできます。}}<br />
<br />
===カーネルのエラーメッセージを吐いてフリーズする===<br />
<br />
特定の Nvidia チップを Nouveau で使用するとシステムがランダムにフリーズして大量のカーネルメッセージを吐くことがあります。メッセージは ''dmesg'' で確認できます。その場合、{{ic|1=nouveau.noaccel=1}} [[カーネルパラメータ]]を追加してみてください。詳しくは [https://fedoraproject.org/wiki/Common_kernel_problems#Systems_with_nVidia_adapters_using_the_nouveau_driver_lock_up_randomly] を参照。<br />
<br />
{{ic|1=QT_XCB_FORCE_SOFTWARE_OPENGL=1}} [[環境変数]]を使って Qt アプリケーションの OpenGL アクセラレーションを無効化するという方法もあります。<br />
<br />
===Flat Panel Table Invalid===<br />
<br />
最新のチップセットを使用する NVIDIA グラフィックカードは起動時に問題を起こすことがあります。例えば X11 が起動しなかったり lspci が永遠にフリーズします [https://bugzilla.redhat.com/show_bug.cgi?id=1425253][https://bbs.archlinux.org/viewtopic.php?id=192532][https://stackoverflow.com/questions/28062458/nouveau-error-while-booting-arch][https://bbs.archlinux.org/viewtopic.php?id=207602][https://unix.stackexchange.com/questions/207895/how-do-i-install-antergos-with-a-gtx-970]。<br />
<br />
ライブディストリビューションやインストールメディアが壊れることもあります。問題は lspci を実行するか systemd のジャーナルをチェックすることで確認できます:<br />
<br />
nouveau E[ DRM]Pointer to flat panel table invalid<br />
<br />
以下の[[カーネルパラメータ]]を使って Nouveau ドライバーを無効化することで起動するようになるかもしれません:<br />
<br />
modprobe.blacklist=nouveau<br />
<br />
起動したら以下のコマンドで Nouveau ドライバーをロードしてください:<br />
<br />
modprobe nouveau<br />
<br />
他の Nvidia グラフィックカードを持っていて、問題のカードを無効化したい場合:<br />
<br />
$ echo 1 > /sys/bus/pci/devices/[card device id]/remove<br />
<br />
[[NVIDIA]] のプロプライエタリドライバーはいまのところ問題なく動作します (バージョン 381)。</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%83%9E%E3%82%A6%E3%82%B9%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88&diff=18251
コンソールマウスサポート
2020-11-18T11:14:11Z
<p>Hiromi-mi: 英語版 608453 に追従</p>
<hr />
<div>[[Category:Linux コンソール]]<br />
[[Category:マウス]]<br />
[[en:General purpose mouse]]<br />
[[es:General purpose mouse]]<br />
[[it:General purpose mouse]]<br />
[[ko:General purpose mouse]]<br />
[[pt:General purpose mouse]]<br />
[[ru:General purpose mouse]]<br />
[[zh-hans:General purpose mouse]]<br />
GPM (General Purpose Mouse の略) は Linux の仮想コンソールでのマウスサポートを提供するデーモンです。<br />
<br />
== インストール ==<br />
<br />
{{Warning|{{pkg|xf86-input-synaptics}} は開発が停止しています。可能であれば [[libinput]] を使ってください。}}<br />
<br />
{{Pkg|gpm}} パッケージを[[インストール]]してください。ノートパソコンのタッチパッドのサポートが必要な場合、{{Pkg|xf86-input-synaptics}} もインストールしてください。<br />
<br />
== 設定 ==<br />
<br />
{{ic|-m}} パラメータで使用するマウスを、{{ic|-t}} パラメータでマウスのタイプを定義します。{{ic|-t}} オプションで使用できるタイプのリストを確認するには、{{ic|-t help}} を付けて {{ic|gpm}} を実行してください:<br />
# gpm -m /dev/input/mice -t help<br />
<br />
{{Pkg|gpm}} パッケージは複数のパラメータを付けて起動する必要があります。パラメータは {{ic|/etc/conf.d/gpm}} ファイルで指定したり、あるいは ''gpm'' を実行するときに直接使用できます。2016年現在、[[systemd]] 用の {{ic|gpm.service}} ファイルには USB マウスのパラメータが指定されています:<br />
{{hc|1=/usr/lib/systemd/system/gpm.service|2=ExecStart=/usr/bin/gpm -m /dev/input/mice -t imps2}}<br />
<br />
他のタイプのマウスを使用する場合はパラメータを編集する必要があります。ユニットファイルの編集方法は [[systemd#ユニットファイルの編集]] を参照してください。<br />
* PS/2 マウスの場合、既存の行を以下のように置き換えてください:<br />
-m /dev/psaux -t ps2<br />
* USB マウスの場合:<br />
-m /dev/input/mice -t imps2<br />
* IBM [[トラックポイント]]の場合:<br />
-m /dev/input/mice -t ps2<br />
<br />
{{Note|マウスにボタンが2つしかない場合、{{ic|GPM_ARGS}} に {{ic|-2}} を指定すれば2番目のボタンで貼り付け操作ができます。}}<br />
<br />
満足のいく設定が決められたら、{{ic|gpm.service}} を[[起動]]・[[有効化]]してください。<br />
<br />
詳しい情報は {{man|8|gpm}} を参照。<br />
<br />
=== 仮想環境 ===<br />
<br />
[[QEMU]] や [[VirtualBox]] でエミュレートされるマウスは、初期状態ではクリックやポインタの位置合わせに問題があります。<br />
ホスト側のマウス位置が同期されず、仮想環境ウィンドウに繰り返し出入りしないとマウスを辿れない領域が生じています。Clicks register in a different location than the cursor was showing at. <br />
<br />
絶対座標が用いられる USB タブレットとしてマウスをエミュレートすることで解決します。<br />
そのためには、USB タブレット対応の Pull Request [https://github.com/telmich/gpm/pull/23] がマージされた {{AUR|gpm-vm}} を使う必要があります。<br />
<br />
{{Note|{{Pkg|libvirt}} では自動的に USB タブレットとしてエミュレーションがなされます。}}<br />
<br />
{{ic|event}} は標準では次のようになっていますが、場合によっては変更する必要があります:<br />
<br />
{{hc|1=/etc/gpm-vm.conf|2=<br />
event="/dev/input/event2"<br />
}}<br />
<br />
{{Note|{{ic|-m /dev/input/mice}} などと gpm-vm コマンドに渡すことはできません。}}<br />
<br />
{{ic|event}} の情報を集めるには {{Pkg|evtest}} を実行します:<br />
{{hc|# evtest|<br />
...<br />
/dev/input/event2: QEMU QEMU USB Tablet<br />
...<br />
}}<br />
<br />
gpm に引数を追加で渡すには、{{ic|/etc/gpm-vm.conf}} の {{ic|additional_args}} を設定します。<br />
<br />
満足のいく設定が決められたら、{{ic|gpm.service}} を[[起動]]・[[有効化]]してください。<br />
<br />
== 参照 ==<br />
<br />
* [https://wiki.gentoo.org/wiki/GPM/ja GPM - Gentoo Wiki]<br />
* {{AUR|consolation}} Alternative based on libinput</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=%E3%83%AD%E3%82%B1%E3%83%BC%E3%83%AB&diff=18247
ロケール
2020-11-17T02:01:30Z
<p>Hiromi-mi: en:Locale 版 636487 に追従</p>
<hr />
<div>[[Category:国際化]]<br />
[[ar:Locale]]<br />
[[cs:Locale]]<br />
[[de:Locale]]<br />
[[en:Locale]]<br />
[[es:Locale]]<br />
[[fr:Locale]]<br />
[[it:Locale]]<br />
[[ko:Locale]]<br />
[[pt:Locale]]<br />
[[ru:Locale]]<br />
[[zh-hans:Locale]]<br />
{{Related articles start}}<br />
{{Related|環境変数}}<br />
{{Related|国際化}}<br />
{{Related articles end}}<br />
ロケール (Locale) は {{Pkg|glibc}} などのロケールに対応しているプログラムやライブラリによって使われ、テキストのレンダリング、時刻や日付、地域通貨の正しい表示、アルファベットなどの決まり事が設定されます。<br />
<br />
== ロケールの生成 ==<br />
<br />
ロケール名は基本的に {{ic|language[_territory][.codeset][@modifier]}} という形式になっています。''language'' は [[w:ja:ISO 639-1コード一覧|ISO 639 言語コード]]、''territory'' は [[w:ja:ISO_3166-1|ISO 3166 国名コード]]、''codeset'' は[[w:ja:文字集合|文字集合]]または [[w:ja:ISO/IEC 8859-1|ISO-8859-1]] や [[w:ja:UTF-8|UTF-8]] などのエンコーディングです。詳しくは {{man|3|setlocale}} を参照してください。<br />
<br />
利用可能なロケールのリストを確認するには、以下のコマンドを実行:<br />
<br />
$ locale -a<br />
<br />
システムでロケールを利用するには、まず生成する必要があります。{{ic|/etc/locale.gen}} の中の適当なエントリをアンコメントして ''locale-gen'' を実行することで生成できます。同じく、エントリをコメントアウトするとロケールは無効になります。変更するときは、システム上の他のユーザーが必要としている言語や特定の[[#変数|変数]]にも注意してください。<br />
<br />
例えば日本語の {{ic|ja_JP.UTF-8 UTF-8}} をアンコメントする場合:<br />
<br />
{{hc|/etc/locale.gen|<br />
...<br />
#ja_JP.EUC-JP EUC-JP<br />
ja_JP.UTF-8 UTF-8<br />
#ka_GE.UTF-8 UTF-8<br />
...<br />
}}<br />
<br />
ファイルを保存して、ロケールを生成:<br />
<br />
# locale-gen<br />
<br />
{{Note|1=<nowiki></nowiki><br />
* {{ic|locale-gen}} は {{Pkg|glibc}} のアップデート時に毎回実行されます [https://github.com/archlinux/svntogit-packages/blob/packages/glibc/trunk/glibc.install#L5]。<br />
* {{ic|UTF-8}} を使用することが推奨されています [https://utf8everywhere.org/]。}}<br />
<br />
== ロケールの設定 ==<br />
<br />
現在設定されているロケールと関連する環境設定を確認するには:<br />
<br />
$ locale<br />
<br />
使用するロケールは {{ic|locale.conf}} ファイルに設定します。ファイルの中では1行毎に[[環境変数]]を設定します。''locale'' の出力と同じフォーマットです。<br />
<br />
生成済みの利用可能なロケールを確認するには:<br />
<br />
$ localedef --list-archive<br />
<br />
もしくは {{man|1|localectl}} を使用:<br />
<br />
$ localectl list-locales<br />
<br />
=== システム全体のロケールを設定する ===<br />
<br />
システム全体のロケールを設定するには {{ic|LANG}} 変数を {{ic|/etc/locale.conf}} に書き込みます。使用するロケールは {{ic|/etc/locale.gen}} でアンコメントしたエントリの最初のカラムと同じです:<br />
<br />
{{hc|1=/etc/locale.conf|2=<br />
LANG=''ja_JP.UTF-8''<br />
}}<br />
<br />
そして、以下のコマンドを実行:<br />
<br />
# localectl set-locale LANG=''ja_JP.UTF-8''<br />
<br />
他の設定など詳しくは[[#変数|変数]]や {{man|5|locale.conf}} を参照。<br />
<br />
=== ユーザーセッションでシステムロケールを上書き ===<br />
<br />
システム全体のロケールは {{ic|~/.config/locale.conf}} (または {{ic|$XDG_CONFIG_HOME/locale.conf}} や {{ic|$HOME/.config/locale.conf}}) を作成・編集することでユーザーセッションで上書きできます。<br />
<br />
{{ic|locale.conf}} ファイルの優先順位は {{ic|/etc/profile.d/locale.sh}} で定義されています。<br />
<br />
{{Tip|<br />
* {{ic|/var/log}} のログは英語のままで、ユーザー環境では自分の言語を使うということが可能です。<br />
* {{ic|/etc/skel/.config/locale.conf}} ファイルを作成することで ''useradd'' と {{ic|-m}} オプションで追加された新しいユーザーの {{ic|~/.config/locale.conf}} が自動的に生成されます。}}<br />
<br />
=== ロケールを即座に変更する ===<br />
<br />
システムやユーザーの {{ic|locale.conf}} ファイルを作成・編集した場合、新しく設定した値は次にログインしたときに有効になります。新しい設定をすぐに使うには {{ic|LANG}} の設定を解除して {{ic|/etc/profile.d/locale.sh}} を source してください:<br />
<br />
$ unset LANG<br />
$ source /etc/profile.d/locale.sh<br />
<br />
{{Note|最初に {{ic|LANG}} 変数の設定を解除しないと、{{ic|locale.sh}} は {{ic|locale.conf}} の値を反映しません。新しい、変更した変数だけが反映されます。{{ic|locale.conf}} から削除した値はセッション内で残り続けます。}}<br />
<br />
=== 他の使用方法 ===<br />
<br />
[[環境変数]]で説明されている方法でロケール変数を定義することも可能です。<br />
<br />
例えば、開発中に特定のアプリケーションをテスト・デバッグしたいとき、以下のように起動することができます:<br />
<br />
$ LANG=C ./my_application.sh<br />
<br />
同じく、現在のシェルから実行する全てのプロセルにロケールを設定するには (例えば、システムのインストール中などに使うと有用です):<br />
<br />
$ export LANG=C<br />
<br />
== 変数 ==<br />
<br />
{{ic|locale.conf}} ファイルは以下の環境変数をサポートしています:<br />
<br />
* [[#LANG: デフォルトロケール|LANG]]<br />
* [[#LANGUAGE: フォールバックロケール|LANGUAGE]]<br />
* {{ic|LC_ADDRESS}}<br />
* [[#LC_COLLATE: 照合順序|LC_COLLATE]]<br />
* {{ic|LC_CTYPE}}<br />
* {{ic|LC_IDENTIFICATION}}<br />
* {{ic|LC_MEASUREMENT}}<br />
* {{ic|LC_MESSAGES}}<br />
* {{ic|LC_MONETARY}}<br />
* {{ic|LC_NAME}}<br />
* {{ic|LC_NUMERIC}}<br />
* {{ic|LC_PAPER}}<br />
* {{ic|LC_TELEPHONE}}<br />
* [[#LC_TIME: 日付と時刻の形式|LC_TIME]]<br />
<br />
上記の {{ic|LC_*}} 変数の意味は {{man|7|locale}} の man ページに、詳しい説明は {{man|5|locale}} の man ページに存在します。<br />
<br />
{{Note|複数の環境変数が設定されている場合の優先順位は [[https://www.gnu.org/software/gettext/manual/gettext.html#Locale-Environment-Variables GNU gettext のドキュメント]]に述べられています。<br />
<br />
=== LANG: デフォルトロケール ===<br />
<br />
この変数で設定されたロケールは {{ic|LC_*}} 変数全てで使われます (明示的に別のロケールを設定した場合はそちらが優先されます)。<br />
<br />
例えば、数値や日付などはスペイン語表記にしつつメッセージを英語で表示するには、{{ic|LANG}} を {{ic|es_ES.UTF-8}} に、{{ic|LC_MESSAGES}} を {{ic|en_US.UTF-8}} に設定します。<br />
<br />
=== LANGUAGE: フォールバックロケール ===<br />
<br />
{{Pkg|gettext}} を使って翻訳されたプログラムは通常の変数に加えて {{Ic|LANGUAGE}} オプションも認識します。ユーザーは [https://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable ロケールの使用順序] を指定することが可能です。もし一番使用したい言語が使えない場合、デフォルトのロケールの代わりに別の似たようなロケールが使われます。例えば、アメリカ流の綴りよりも英国流の綴りを好むオーストラリアのユーザーの場合:<br />
<br />
{{hc|locale.conf|2=<br />
LANG=en_AU.UTF-8<br />
LANGUAGE=en_AU:en_GB:en<br />
}}<br />
<br />
=== LC_TIME: 日付と時刻の形式 ===<br />
<br />
例えば {{ic|LC_TIME}} が {{ic|en_US.UTF-8}} に設定されていた場合、日付フォーマットは "MM/DD/YYYY" になります。ISO 8601 の日付フォーマットである "YYYY-MM-DD" を使いたい場合:<br />
<br />
{{hc|locale.conf|2=<br />
LC_TIME=en_DK.UTF-8<br />
}}<br />
<br />
{{Note|1=プログラムは必ずしも変数によって指定されたフォーマットで日付を表示するとは限りません。例えば {{man|1|date}} は別のパラメータを使って指定するようになっています。また [[Firefox]] 57以降では {{ic|LC_TIME}} が考慮されていません ([https://bugzilla.mozilla.org/show_bug.cgi?id=1429578 Bug 1429578])。}}<br />
<br />
=== LC_COLLATE: 照合順序 ===<br />
<br />
ソートや正規表現で使われる照合順序を管理する変数です。<br />
<br />
例えば値を {{ic|C}} に設定することで ''ls'' コマンドはドットファイルを先に表示して、大文字・小文字のファイル名を後にします:<br />
<br />
{{hc|locale.conf|2=<br />
LC_COLLATE=C<br />
}}<br />
<br />
詳しくは [https://superuser.com/a/448294/175967] を参照してください。<br />
<br />
潜在的な問題を回避するため、Arch では以前 {{ic|/etc/profile}} で {{ic|1=LC_COLLATE=C}} と設定していましたが、現在は使われなくなっています。<br />
<br />
=== LC_ALL: トラブルシューティング ===<br />
<br />
この変数で設定されたロケールは常に {{ic|LANG}} と他の {{ic|LC_*}} 変数よりも優先して使われます。<br />
<br />
{{ic|LC_ALL}} は {{ic|locale.conf}} ファイルで設定できない唯一の {{ic|LC_*}} 変数です。あくまで {{ic|/etc/profile}} などで使うテスト用あるいはトラブルシューティング用の変数です。<br />
<br />
== トラブルシューティング ==<br />
<br />
=== ターミナルが UTF-8 をサポートしていません ===<br />
<br />
以下は UTF-8 をサポートしているターミナルのリストです:<br />
<br />
* gnustep-terminal<br />
* konsole<br />
* [[mlterm]]<br />
* [[rxvt-unicode]]<br />
* [[st]]<br />
* [[termite]]<br />
* [[アプリケーション一覧/ユーティリティ#VTE ベース|VTE ベースのターミナル]]<br />
* [[xterm]] - {{ic|-u8}} 引数を使って実行するか [[X resources]] で {{ic|xterm*utf8: 2}} を設定してください。<br />
<br />
==== Gnome-terminal や rxvt-unicode ====<br />
<br />
UTF-8 のロケールからアプリケーションを起動する必要があり、それ以外のロケールを使用していると UTF-8 のサポートが有効になりません。上で書いているように {{ic|en_US.UTF-8}} ロケール (またはあなたの地域の UTF-8 ロケール) を生成し、デフォルトのロケールとして設定して再起動してください。<br />
<br />
=== 設定を変更しても言語が変わらない ===<br />
<br />
{{ic|locale.conf}} 以外の他のファイルによって環境変数が再定義されている可能性があります (例: {{ic|~/.pam_environment}})。詳しくは[[環境変数#変数の定義]]を参照してください。<br />
<br />
[[GNOME]] などのデスクトップ環境を使用している場合、{{ic|locale.conf}} の設定がデスクトップ環境の言語設定で上書きされることがあります。<br />
[[KDE]] Plasma も UI の言語を Plsama 側で変更できます。変更後にもデフォルト言語が表示されている場合、[https://bbs.archlinux.org/viewtopic.php?pid=1435219#p1435219] にあるように {{ic|~/.config/plasma-localerc}} を削除すると解決する場合があります。 <br />
<br />
[[LightDM]] の場合、ユーザーセッションが記録されるファイル {{ic|~/.dmrc}} から意図しないロケールが読み込まれる可能性があります。 <br />
<br />
== 参照 ==<br />
<br />
* [https://wiki.gentoo.org/wiki/Localization/Guide/ja Gentoo Linux ローカリゼーションガイド]<br />
* [http://demo.icu-project.org/icu-bin/locexp?_=en_US&x=col ICU's interactive collation testing]<br />
* [http://www.openi18n.org/ Free Standards Group Open Internationalisation Initiative]<br />
* [http://pubs.opengroup.org/onlinepubs/007908799/xbd/locale.html ''The Single UNIX Specification'' definition of Locale] by The Open Group<br />
* [https://help.ubuntu.com/community/EnvironmentVariables#Locale_setting_variables Locale environment variables]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Dtach&diff=18245
Dtach
2020-11-17T01:32:00Z
<p>Hiromi-mi: /* */ -> /* セッションにアタッチ */ typo修正</p>
<hr />
<div>[[Category:ターミナルマルチプレクサ]]<br />
[[en:Dtach]]<br />
{{Related articles start}}<br />
{{Related|GNU Screen}}<br />
{{Related|tmux}}<br />
{{Related articles end}}<br />
<br />
dtach は screen のデタッチ機能をエミュレートする小さなプログラムです。ターミナルの制御から保護された環境でプログラムを実行して、後でアタッチすることができます [http://dtach.sourceforge.net/]。<br />
<br />
== インストール ==<br />
<br />
{{AUR|dtach}} パッケージを[[インストール]]してください。<br />
<br />
== 使用方法 ==<br />
<br />
=== 新しいセッションの作成 ===<br />
<br />
''command'' を実行する新しいセッションを作成してアタッチするには:<br />
<br />
$ dtach -c ''socket'' ''command''<br />
<br />
例えば、{{ic|/tmp/bashsession}} にソケットを配置して ''bash'' を実行する新しいセッションを作成するには:<br />
<br />
$ dtach -c /tmp/bashsession bash<br />
<br />
アタッチせずに ''command'' コマンドを実行する新しいセッションを作成するには:<br />
<br />
$ dtach -n ''socket'' 'command''<br />
<br />
=== セッションにアタッチ ===<br />
<br />
既存のセッションにアタッチするには:<br />
<br />
$ dtach -a ''socket''<br />
<br />
セッションが存在しない場合、作成するには:<br />
<br />
$ dtach -A ''socket''<br />
<br />
=== セッションからデタッチ ===<br />
<br />
アタッチされたセッションで {{ic|Ctrl+\}} と入力してください。{{ic|-e}} フラグを使うことで使用するキーは変えられます。<br />
<br />
== ヒントとテクニック ==<br />
<br />
=== セッションの共有 ===<br />
<br />
他のユーザーとセッションを共有するには[[#新しいセッションの作成|新しいセッションを作成]]してからソケットファイルのパーミッションを変更して他のユーザーからも読み書きできるようにしてください。その後、他のユーザーから[[#セッションにアタッチ|セッションにアタッチ]]することができます。</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Unified_Extensible_Firmware_Interface&diff=18243
Unified Extensible Firmware Interface
2020-11-16T12:53:27Z
<p>Hiromi-mi: /* UEFI シェルを入手する */ 英語版 636946 に追従</p>
<hr />
<div>[[Category:ブートプロセス]]<br />
[[en:Unified Extensible Firmware Interface]]<br />
[[es:Unified Extensible Firmware Interface]]<br />
[[it:Unified Extensible Firmware Interface]]<br />
[[ru:Unified Extensible Firmware Interface]]<br />
[[zh-hans:Unified Extensible Firmware Interface]]<br />
{{Related articles start}}<br />
{{Related|Arch ブートプロセス}}<br />
{{Related|Master Boot Record}}<br />
{{Related|EFI システムパーティション}}<br />
{{Related|GUID Partition Table}}<br />
{{Related|セキュアブート}}<br />
{{Related articles end}}<br />
<br />
'''Unified Extensible Firmware Interface''' (もしくは省略して UEFI) は新しいタイプのファームウェアで、もともとは Intel によって Itanium を使ったシステム用に設計されました (その時の名前は EFI)。UEFI は [[Wikipedia:ja:BIOS|BIOS]] システムで一般的に使われている "[[Master Boot Record|MBR]] ブートコード" メソッドとは異なる新しい OS 起動方法を取り入れています。Intel によって EFI がバージョン 1.x としてリリースされたのに始まり、それから UEFI Forum という業界団体によって開発が引き継がれ、Unified EFI という名前でバージョン 2.0 がリリースされました。このページでは UEFI ブートローダの設定は説明しません。そのような情報は[[ブートローダー]]を見て下さい。<br />
<br />
== UEFI のバージョン ==<br />
<br />
* EFI 1.x と明記しないかぎり、「EFI」と「UEFI」は相互に UEFI 2.x ファームウェアを意味するものとして使います。<br />
* Apple の EFI 実装は EFI 1.x バージョンでもなく UEFI 2.x バージョンでもなく、両方を混ぜあわせたものです。この種のファームウェアは (U)EFI の仕様には含まれていません、つまり、規格外の UEFI ファームウェアになります。また、以下の手順は明白に書かれている部分を除き、一般的な UEFI を対象としており、場合によっては手順のいくつかは [[MacBook|Mac]] では動かなかったり違っていたりする可能性があります。<br />
* 最新の UEFI 仕様は https://uefi.org/specifications にて確認できます。<br />
<br />
== BIOS ==<br />
<br />
BIOS (Basic Input-Output System) はシステムの電源が入れられた時に一度だけ起動する一番最初のプログラム(ファームウェア)です。ほとんどの場合マザーボード上のフラッシュメモリに保存されており、システムのストレージとは独立しています。BIOS は BIOS のディスク順で一番最初のディスクから最初の 440 バイト ([[Master Boot Record]]) を起動します。440 バイトのブートコード領域に収まるプログラムで出来ることはかなり少ないので、通常は [[GRUB]], [[Syslinux]], [[LILO]] などの一般的なブートローダが BIOS によってロードされ、それからオペレーティングシステムをロードしたりカーネルを直接ロードします。詳しくは [[Arch ブートプロセス]]を参照してください。<br />
<br />
== UEFI ==<br />
<br />
UEFI は分かりやすいファイルシステムとパーティションテーブル、その両方の読み込みをサポートしています。従って BIOS 環境であったような 440 バイトのコード制限 (MBR ブートコード) は存在しません。<br />
<br />
一般的に使われている UEFI ファームウェアは MBR と GPT 両方のパーティションテーブルをサポートしています。Apple-Intel Mac の EFI は MBR と GPT のほかに Apple Partition Map もサポートしていることが知られています。ほとんどの UEFI ファームウェアは HDD 内の FAT12 (フロッピーディスク)、FAT16 と FAT32 ファイルシステムへのアクセスと CD/DVD 内の ISO9660 (と UDF) へのアクセスをサポートしています。Apple-Intel Mac の EFI はそれらに加えて HFS/HFS+ ファイルシステムへのアクセスができます。<br />
<br />
MBR にブートコードがあろうとなかろうと UEFI はそれを実行しません。かわりに、UEFI は "EFI SYSTEM PARTITION" という名前のパーティションテーブル内の特別なパーティションを使います、そしてその中にファームウェアによって起動するために必要なファイルが保存されています。各ベンダーは {{ic|<EFI SYSTEM PARTITION>/EFI/<VENDOR NAME>/}} フォルダの下にそのファイルを置きます。そしてファームウェアやシェル (UEFI シェル) を使ってブートプログラムを実行できます。EFI システムパーティションは (大抵) FAT32 もしくは FAT16 でフォーマットされています。<br />
<br />
UEFI では、OS ローダーであろうとユーティリティ (メモリテストアプリやリカバリツール) であろうと、全てのプログラムは EFI ファームウェアアーキテクチャに対応する UEFI アプリケーションでなくてはなりません。最近の Apple Mac を含む、市場に出ているほとんどの UEFI ファームウェアは x86_64 EFI ファームウェアを使っています。IA32 (32ビット) EFI を使っているデバイスは古い (2008年以前の) Apple Mac と最近の Intel Cloverfield を使っている ultrabook だけです。また、古い Intel Server ボートには Intel EFI 1.10 ファームウェアを使っているものがあります。<br />
<br />
x86_64 バージョンの Linux や Windows とは異なり、x86_64 の EFI ファームウェアは 32 ビットの EFI アプリを実行することができません。従って UEFI アプリケーションはファームウェアのアーキテクチャにあわせて正しくコンパイルされている必要があります。<br />
<br />
=== UEFI のブートプロセス ===<br />
<br />
# システムのスイッチが入る - POST (Power On Self Test) プロセス<br />
# UEFI ファームウェアがロードされます。ファームウェアは起動に必要なハードウェアを初期化します<br />
# 次にファームウェアはブートマネージャのデータを読み込みどの UEFI アプリケーションをどこから (つまりどのディスク・パーティションから) 起動するか決定します<br />
# ファームウェアのブートマネージャのブートエントリに定義されているように UEFI アプリケーションをファームウェアが起動します<br />
# 起動した UEFI アプリケーションは設定によって他のアプリケーション (UEFI シェルや rEFInd の場合) やカーネルと initramfs (GRUB などのブートローダの場合) を起動します<br />
<br />
{{Note|UEFI 環境によってはブート時に UEFI アプリケーションを起動する唯一の方法が (UEFI ブートメニューでカスタムエントリがない場合) 指定位置にアプリケーションを配置することです: {{ic|<EFI SYSTEM PARTITION>/EFI/boot/bootx64.efi}} (64ビットの x86 環境)}}<br />
<br />
=== UEFI のマルチブート ===<br />
<br />
OS やベンダーはそれぞれ自身のファイルを EFI SYSTEM PARTITION に他のファイルと干渉しないように管理することができるので、UEFI を使うマルチブートは実行する UEFI アプリケーションが個々の OS のブートローダに対応しているかどうかという問題になります。このため OS を切り替えるために[[ブートローダー]]のロード機構に頼る必要はなくなります。<br />
<br />
==== Microsoft Windows のブート ====<br />
<br />
Windows Vista (SP1+) や 7、8 の x86_64 版は UEFI ファームウェアを使った起動をネイティブでサポートしています。Windows は使われているファームウェアによってパーティションタイプを強制します。Windows が UEFI モードで起動されているときは、GPT ディスクにしかインストールできません。Windows が Legacy BIOS モードで起動されているときは、MBR ディスクにしかインストールできません。これは Windows のインストールによる制限です。したがって Windows は UEFI-GPT ブートか BIOS-MBR ブートのどちらかしかサポートしておらず、UEFI-MBR や BIOS-GPT はサポートしていません。<br />
<br />
Windows のような制限は Linux カーネルには存在しませんが、使用するブートローダによっては制限が存在します。ただし同じディスクから Windows と Linux を起動したい時はブートローダ自体を使っているファームウェアとディスクパーティションに設定する必要があるので Windows の制限を考慮しなくてはなりません。同じディスクで Windows と Linux のデュアルブートをする場合、Windows によって使われている UEFI-GPT か BIOS-MBR のどちらかの方法に従うことを推奨します。<br />
<br />
32ビットの Windows は BIOS-MBR ブートだけをサポートしています。従って、32ビットの Windows と Linux を同じディスクから起動するときは、使えるディスクは MBR だけです。詳しくは https://support.microsoft.com/kb/2581408 を見て下さい。<br />
<br />
=== UEFI ファームウェアのビット数を調べる ===<br />
<br />
==== Mac でない場合 ====<br />
<br />
{{ic|/sys/firmware/efi}} ディレクトリが存在するかどうか確認してください。存在するときはカーネルは EFI モードで起動されています。この場合 UEFI のビット数はカーネルのビット数と同じです (i686 か x86_64)。<br />
<br />
{{Note|Intel Atom System-on-Chip システムには 32-bit UEFI が載っています (2013年11月2日現在)。詳細は [[#GRUB の使用]] を見て下さい。}}<br />
<br />
==== Apple Mac ==== <br />
<br />
2008年以前のほとんどの Mac は i386-efi ファームウェアを使っています。一方、2008年以降の Mac のファームウェアはほとんど x86_64-efi です。Mac OS X Snow Leopard を動かすことのできる全ての Mac は x86_64 EFI 1.x ファームウェアを使っています。<br />
<br />
Mac の efi ファームウェアのアーキテクチャを知るには、Mac OS X の端末に次のコマンドを入力してください:<br />
<br />
$ ioreg -l -p IODeviceTree | grep firmware-abi<br />
<br />
コマンドの返事が EFI32 なら、IA32 (32ビット) EFI 1.x ファームウェアです。EFI64 と返ってくるなら、x86_64 EFI ファームウェアです。ほとんどの Mac は UEFI 2.x ファームウェアを持っていません、Apple の EFI 実装は UEFI 2.x の仕様に完全には準拠していないからです。<br />
<br />
=== Secure Boot ===<br />
<br />
[[セキュアブート]]を参照してください。<br />
<br />
== UEFI の Linux カーネル設定オプション ==<br />
<br />
UEFI システムのために必要な Linux カーネル設定オプションは:<br />
<br />
CONFIG_RELOCATABLE=y<br />
CONFIG_EFI=y<br />
CONFIG_EFI_STUB=y<br />
CONFIG_X86_SYSFB=y<br />
CONFIG_FB_SIMPLE=y<br />
CONFIG_FRAMEBUFFER_CONSOLE=y<br />
<br />
UEFI Runtime Variables Support ('''efivarfs''' ファイルシステム - {{ic|/sys/firmware/efi/efivars}})。このオプションは {{ic|/usr/bin/efibootmgr}} などのツールを使って UEFI ランタイム変数を操作するのに必要なので重要です。次の設定オプションはカーネル 3.10 以上で追加されています。<br />
<br />
CONFIG_EFIVAR_FS=y<br />
<br />
UEFI Runtime Variables Support (古い '''efivars sysfs''' インターフェイス - {{ic|/sys/firmware/efi/vars}})。このオプションは efivars と sysfs-efivars がともに有効な場合の潜在的な問題を回避するため無効にしてください。<br />
<br />
CONFIG_EFI_VARS=n<br />
<br />
GUID Partition Table [[GUID Partition Table|GPT]] 設定オプション - UEFI サポートのために必須<br />
<br />
CONFIG_EFI_PARTITION=y<br />
<br />
EFI mixed-mode サポート - IA32 UEFI で x86_64 カーネルを起動するのに必要:<br />
<br />
CONFIG_EFI_MIXED=y<br />
<br />
{{Note|Linux を UEFI で起動するには上記のオプション全てが必要です。公式リポジトリの Archlinux カーネルでは有効になっています。}}<br />
<br />
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/x86/x86_64/uefi.txt より。<br />
<br />
== UEFI 変数 ==<br />
<br />
UEFI はオペレーティングシステムとファームウェアが情報を交換できるように変数を定義しています。UEFI ブート変数はブートローダや OS によって初期のシステムスタートアップのためにだけに使われます。UEFI ランタイム変数によって OS が UEFI ブートマネージャなどのファームウェアの設定や UEFI Secure Boot プロトコルなどのキーの管理ができるようになっています。次を実行することでリストを取得できます:<br />
$ efivar -l<br />
<br />
=== Linux カーネルでの UEFI 変数のサポート ===<br />
<br />
Linux カーネルは2つのインターフェイスを使って EFI 変数のデータをユーザ空間に渡します:<br />
<br />
# 新しい '''efivarfs''' インターフェイス ({{ic|efivarfs}} カーネルモジュールによって {{ic|/sys/firmware/efi/efivars}} にマウントされます) は sysfs-efivars インターフェイスの限界を越えるために作られました。変数のサイズ制限を取り払って、UEFI Secure Boot 変数をサポートしておりカーネルの上流から使用を推奨されています。カーネル 3.8 から導入され、カーネル 3.10 では {{ic|efivars}} カーネルモジュールから {{ic|efivarfs}} モジュールは分割されています。<br />
# 古い sysfs-efivars インターフェイス ({{ic|efivars}} カーネルモジュールによって {{ic|/sys/firmware/efi/vars}} に生成されます) には変数のサイズ制限などがあり、上流のカーネルではサポートされていますが Arch の公式カーネルでは完全に無効になっています。<br />
<br />
==== efivarfs と sysfs-efivars の不一致 ====<br />
<br />
sysfs-efivars と efivarfs は同時に実行することが可能ですが、データを同時に修正した時、sysfs-efivars と efivarfs のデータに不一致が生じるおそれがあります (詳しくは https://lkml.org/lkml/2013/4/16/473 を見て下さい)。core/{{pkg|linux}} 3.11 と core/{{Pkg|linux-lts}} 3.10 から sysfs-efivars は無効になりました (これは Arch のカーネルでの変更です、上流では sysfs-efivars のコードは削除されていません)。Arch では、efivarfs だけがサポートされています。[[公式リポジトリ]]にある UEFI 変数に関連したツールは全て efivarfs をサポートしています (2013年10月1日現在)。<br />
<br />
{{Note|sysfs-efivars を無効化した副作用として、Arch の公式カーネルでは {{ic|efi_pstore}} モジュールも無効になっています。}}<br />
<br />
両方のインターフェイスが有効になっている場合、片方を無効化する必要があり、ユーザー空間のツールを使って EFI VAR データにアクセスする前にインターフェイスを一度無効化してから再度有効にすることでデータを更新してください。<br />
<br />
sysfs-efivars を無効化して efivarfs を更新するには:<br />
# modprobe -r efivars<br />
# umount /sys/firmware/efi/efivars<br />
# modprobe -r efivarfs<br />
# modprobe efivarfs<br />
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars<br />
<br />
efivarfs を無効化して sysfs-efivars を更新するには:<br />
# umount /sys/firmware/efi/efivars<br />
# modprobe -r efivarfs<br />
# modprobe -r efivars<br />
# modprobe efivars<br />
<br />
=== UEFI 変数のサポートを正しく動作させるための必要条件 ===<br />
<br />
# EFI Runtime Services サポートがカーネルに存在する必要があります ({{ic|1=CONFIG_EFI=y}})。{{ic|zgrep CONFIG_EFI /proc/config.gz}} で確認できます。<br />
# カーネルのプロセッサのビット数・アーキテクチャが EFI のビット数・アーキテクチャと一致していなくてはなりません<br />
# カーネルは EFI モードで起動して下さい (via EFISTUB or any EFI bootloader, not via BIOS/CSM or Apple's "bootcamp" which is also BIOS/CSM)<br />
# カーネルコマンドラインでカーネルの EFI Runtime Services を無効にしてはいけません。つまり {{ic|noefi}} カーネルパラメータは使わないで下さい<br />
# {{ic|efivarfs}} ファイルシステムが {{ic|/sys/firmware/efi/efivars}} にマウントされている必要があります。マウントされていない時は下の [[#efivarfs のマウント]] セクションに従って下さい<br />
# {{ic|efivar}} はエラーを出さずに EFI 変数をリストアップ ({{ic|-l}} オプション) するはずです。出力の例は [[#UEFI 変数のサンプルリスト]] を見て下さい<br />
<br />
上記の条件が満たされても EFI 変数のサポートが動かないときは、以下の回避策を試して下さい:<br />
<br />
# ユーザスペースのツールが efi 変数のデータを修正できない場合、{{ic|/sys/firmware/efi/efivars/dump-*}} ファイルが存在しているかチェックしてください。存在しているときは、ファイルを削除してから再起動してもう一度試して下さい。<br />
# 上の手順で問題が修正されない場合、{{ic|efi_no_storage_paranoia}} カーネルパラメータを使って起動してカーネルの efi 変数ストレージ領域チェックを無効にしてください。これによって efi 変数の書き込み・修正が止められている可能性があります。<br />
<br />
{{Note|{{ic|efi_no_storage_paranoia}} は必要な時だけに使い、通常のブートオプションに使用してはいけません。このカーネルコマンドライン・パラメータは NVRAM を満杯にしてマシンを文鎮化するようなことを避ける安全装置を外してしまいます。}}<br />
<br />
==== efivarfs のマウント ====<br />
<br />
{{Warning|1=デフォルトで ''efivars'' は書き込み可能でマウントされますが [https://github.com/systemd/systemd/issues/2402]、これによってシステムに致命的なダメージを与えてしまう可能性があります [https://bbs.archlinux.org/viewtopic.php?id=207549]。そのため、以下で説明しているように ''efivars'' は読み取り専用 ({{ic|-o ro}}) でマウントすることを考慮してください。ただし、読み取り専用でマウントした場合、''efibootmgr'' やブートローダーなどのツールがブート設定を変更できなくなってしまう上に、{{ic|systemctl reboot --firmware-setup}} などのコマンドが機能しなくなります。}}<br />
<br />
起動時に [[systemd]] によって自動で {{ic|efivarfs}} がマウントされなかった時は、手動で efivarfs をマウントして {{ic|efibootmgr}} などの[[#ユーザースペースツール|ユーザースペースツール]]を使うために UEFI Variable サポートを有効にする必要があります:<br />
<br />
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars<br />
<br />
{{Note|上のコマンドは '''chroot''' の前と後、両方で実行する必要があります。}}<br />
<br />
起動時に {{ic|efivarfs}} を読み取り専用でマウントするには、{{ic|/etc/fstab}} に以下を追加:<br />
<br />
{{hc|/etc/fstab|2=<br />
efivarfs /sys/firmware/efi/efivars efivarfs '''ro''',nosuid,nodev,noexec,noatime 0 0<br />
}}<br />
<br />
書き込み可能で再マウントするには、次を実行:<br />
<br />
# mount -o remount /sys/firmware/efi/efivars -o '''rw''',nosuid,nodev,noexec,noatime<br />
<br />
=== ユーザースペースツール ===<br />
<br />
UEFI 変数を表示・変更することができるツールがいくつかあります、即ち<br />
<br />
* {{App|efivar|UEFI 変数を操作するためのライブラリとツール (vathpela の efibootmgr によって使われます)|https://github.com/vathpela/efivar|{{Pkg|efivar}} または {{AUR|efivar-git}}}}<br />
* {{App|efibootmgr|UEFI Firmware Boot Manager の設定を操作するツール。上流の (http://linux.dell.com/git/efibootmgr.git) efibootmgr コードは efivarfs をサポートしていません。Fedora の Peter Jones (vathpela) による efibootmgr のフォークは efivarfs と sysfs-efivars の両方をサポートしています。|https://github.com/vathpela/efibootmgr/tree/master|{{Pkg|efibootmgr}} または {{AUR|efibootmgr-git}}{{Broken package link|パッケージが存在しません}}}}<br />
* {{App|uefivars|EFI 変数と追加の PCI 関連情報を表示します (内部で efibootmgr のコードを使っています)。2.0 は efivarfs だけをサポートしていて 1.0 は sysfs-efivars だけをサポートしています。|https://github.com/fpmurphy/Various/tree/master/uefivars-2.0|{{AUR|uefivars-git}}}}<br />
* {{App|efitools|UEFI Secure Boot の証明書・キー・署名済みのバイナリを作成・設定するためのツール (efivarfs を必要とします)。|http://blog.hansenpartnership.com/efitools-1-4-with-linux-key-manipulation-utilities-released/|{{Pkg|efitools}} または {{AUR|efitools-git}}}}<br />
* {{App|Ubuntu's Firmware Test Suite|Ubuntu のファームウェアテストスイート。|https://wiki.ubuntu.com/FirmwareTestSuite/|{{AUR|fwts}}{{Broken package link|{{aur-mirror|fwts}}}} (と {{AUR|fwts-efi-runtime-dkms}}{{Broken package link|{{aur-mirror|fwts-efi-runtime-dkms}}}}) もしくは {{AUR|fwts-git}}}}<br />
<br />
==== efibootmgr ====<br />
<br />
{{Warning|Apple Mac で {{ic|efibootmgr}} を使うとファームウェアが塞がれマザーボード ROM のリセットが必要になる可能性があります。これに関して Ubuntu/Launch バグトラッカーでバグの報告があります。Mac の場合は bless コマンドだけを使って下さい。Fedora の開発者による実験的な Linux 用 "bless" ユーティリティがあります - {{AUR|mactel-boot}}。}}<br />
<br />
{{Note|<br />
* あなたの環境で {{ic|efibootmgr}} が完全に動かない場合、再起動して UEFI Shell v2 に入り {{ic|bcfg}} コマンドを使ってブートローダのブートエントリを作成してください。<br />
* {{ic|efibootmgr}} を使えない場合、UEFI BIOS によっては BIOS から直接 uefi のブートオプションを管理できることがあります。例えば、ASUS の BIOS には "Add New Boot Option" からローカルの EFI System Partition を選択して直接 EFI スタブの位置を入力できます (例えば {{ic|\EFI\refind\refind_x64.efi}})。<br />
* 下のコマンドではサンプルとして {{Pkg|refind-efi}} ブートローダを使っています。<br />
* 上流の efibootmgr http://linux.dell.com/git/efibootmgr.git は efivarfs をサポートしていません。ただし公式の efibootmgr パッケージでは vathpela の efibootmgr が起用されており efivarfs をサポートしています。また、公式の Arch カーネルでは sysfs-efivars は完全に無効になっていて efivarfs だけをサポートしています。このセクションはあなたが efivarfs と vathpela の efibootmgr のみ使っていると仮定して書かれています。<br />
}}<br />
<br />
起動するブートローダファイルが {{ic|/boot/efi/EFI/refind/refind_x64.efi}} だと仮定します。{{ic|/boot/efi/EFI/refind/refind_x64.efi}} は {{ic|/boot/efi}} と {{ic|/EFI/refind/refind_x64.efi}} とに分割できますが、{{ic|/boot/efi}} は EFI システムパーティションのマウントポイントで、ここでは {{ic|/dev/sdXY}} と仮定します (この {{ic|X}} と {{ic|Y}} は本当の値の代替値です - 例:- {{ic|/dev/sda1}} , X=a Y=1)。<br />
<br />
(マウントポイントが {{ic|/boot/efi}} だとして) 実際の EFI システムパーティションの ({{ic|/dev/sdXY}} という形式の) デバイスパスを調べるには、次を実行してください:<br />
<br />
# findmnt /boot/efi<br />
TARGET SOURCE FSTYPE OPTIONS<br />
/boot/efi /dev/sdXY vfat rw,flush,tz=UTC<br />
<br />
uefi 変数がカーネルでサポートされていて正しく動作していることを確認してください:<br />
<br />
# efivar -l<br />
<br />
efivar がエラーを出さずに uefi 変数を表示した時は、次に進んで下さい。エラーが出た場合、[[#UEFI 変数のサポートを正しく動作させるための必要条件]] が全て満たされているか確認してください。<br />
<br />
それから efibootmgr を使って以下のようにブートエントリを作成します:<br />
<br />
# efibootmgr -c -d /dev/sdX -p Y -l /EFI/refind/refind_x64.efi -L "rEFInd"<br />
<br />
{{Note|1=UEFI はパスの区切り記号としてバックスラッシュ {{ic|\}} を使います (Windows のパスと似ています)。ただし公式の {{Pkg|efibootmgr}} パッケージはパスの区切りにスラッシュ {{ic|/}} を使う unix 形式のパスを {{ic|-l}} オプションでサポートしています。Efibootmgr はローダーのパスを変換する前に {{ic|/}} を {{ic|\}} に内部で変換します。この機能を efibootmgr に組み込む git コミットは http://linux.dell.com/cgi-bin/cgit.cgi/efibootmgr.git/commit/?id=f38f4aaad1dfa677918e417c9faa6e3286411378 です。}}<br />
<br />
上のコマンドにある {{ic|/boot/efi/EFI/refind/refind_x64.efi}} は {{ic|/boot/efi}} と {{ic|/EFI/refind/refind_x64.efi}} になりドライブ {{ic|/dev/sdX}} -> パーティション {{ic|Y}} -> ファイル {{ic|/EFI/refind/refind_x64.efi}} と翻訳されます。<br />
<br />
'label' は UEFI ブートメニューで表示されるメニューエントリの名前です。この名前はユーザーが選ぶことができシステムのブートには影響がありません。詳しくは [http://linux.dell.com/cgi-bin/cgit.cgi/efibootmgr.git/plain/README efibootmgr GIT README] を見て下さい。<br />
<br />
FAT32 ファイルシステムは UTF-8 エンコードを使わないのでデフォルトで大文字・小文字を区別しません。上の場合ではファームウェアは小文字の 'efi' の代わりに大文字の 'EFI' を使っていますが、{{ic|\EFI\gummiboot\gummibootx64.efi}} と {{ic|\efi\gummiboot\gummibootx64.efi}} に違いはありません (ファイルシステムのエンコードが UTF-8 の場合は話が変わります)。<br />
<br />
== EFI System Partition ==<br />
<br />
[[EFI システムパーティション]]を参照してください。<br />
<br />
== UEFI シェル ==<br />
<br />
UEFI シェルは、uefi ブートローダを含む、uefi アプリケーションを起動するためのファームウェア用のシェル/ターミナルです。それとは別に、シェルは、システムやファームウェアのメモリーマップ (memmap) などの様々な情報を取得したり、ブートマネージャ変数を変更したり (bcfg)、パーティションプログラムを実行したり (diskpart)、uefi ドライバをロードしたり、テキストファイルを編集したり (edit) するのにも使われます。<br />
<br />
=== UEFI シェルを入手する === <br />
<br />
Intel の Tianocore UDK/EDK2 プロジェクトから BSD ライセンスの UEFI シェルをダウンロードできます:<br />
<br />
Shell v2:<br />
* Arch インストールメディアの {{ic|/shellx64.efi}}<br />
* {{Pkg|edk2-shell}} パッケージ - x86_64 環境の x86_64 シェルと i686 環境の IA32 シェルを提供します - 最新の Tianocore EDK2 リリースからコンパイル<br />
* {{AUR|uefi-shell-git}} パッケージ - x86_64 環境の x86_64 シェルと i686 環境の IA32 シェルを提供します - 最新の Tianocore EDK2 ソースからコンパイル<br />
<br />
Shell v1:<br />
* [https://github.com/tianocore/edk2/tree/master/EdkShellBinPkg Precompiled UEFI Shell v1 バイナリ] (not updated anymore upstream as of Jan 10, 2014)<br />
<br />
派生版:<br />
* [https://github.com/acidanthera/OpenCorePkg/releases 幅広いファームウエアに対応させたコンパイル済み UEFI Shell v2 バイナリ]] - OpenCore ブートローダーの一部 - Release アーカイブの {{ic|EFI/OC/Tools/OpenShell.efi}} にあります。<br />
<br />
<br />
Shell v2 は UEFI 2.3 以上のシステム上でだけ動作します。UEFI 2.3 以上のシステムでは Shell v1 より v2 を使うことが推奨されます。Shell v1 はスペックに関係なく全ての UEFI システムで動作するはずです。詳しくは [https://sourceforge.net/apps/mediawiki/tianocore/index.php?title=ShellPkg ShellPkg] や [https://sourceforge.net/mailarchive/message.php?msg_id=28690732 this mail] を見て下さい。<br />
<br />
=== UEFI シェルの起動 ===<br />
<br />
Asus や AMI Aptio のマザーボード (Sandy Bridge 以上) ベースの x86_64 UEFI ファームウェアには {{ic|"Launch EFI Shell from filesystem device"}} という名前のオプションが提供されていることがあります。そういったマザーボードでは、x86_64 UEFI シェルをダウンロードして EFI SYSTEM PARTITION に {{ic|<EFI_SYSTEM_PARTITION>/shellx64.efi}} としてコピーしてください (ほとんどの場合 {{ic|/boot/efi/shellx64.efi}})。<br />
<br />
Phoenix SecureCore Tiano UEFI ファームウェアを使っているシステムには UEFI シェルが組み込まれていることが知られており {{ic|F6}}, {{ic|F11}}, {{ic|F12}} キーのどれかで起動できます。<br />
<br />
{{Note|上記のメソッドを使って直接ファームウェアから UEFI シェルを起動できない場合、{{ic|(USB)/efi/boot/bootx64.efi}} としてコピーされた {{ic|Shell.efi}} で FAT32 USB ペンドライブを作成してください。この USB はファームウェアブートメニューを表示するはずです。このオプションを起動することで UEFI シェルが起動されます。}}<br />
<br />
=== 重要な UEFI シェルコマンド ===<br />
<br />
UEFI シェルコマンドはそれぞれのページの出力ごとにポーズを入れる {{ic|-b}} オプションをサポートしています。利用できるコマンドを表示するには {{ic|help -b}} を実行してください。<br />
<br />
詳しい情報は https://software.intel.com/en-us/articles/efi-shells-and-scripting/<br />
<br />
==== bcfg ====<br />
<br />
{{ic|bcfg}} コマンドは UEFI NVRAM エントリを修正して、ブートエントリやドライバオプションを変更できるようにするために使われます。このコマンドについては "UEFI Shell Specification 2.0" pdf ドキュメントの 83 ページ (Section 5.3) で詳しく説明されています。<br />
<br />
{{Note|<br />
* {{ic|efibootmgr}} が上手くブートエントリを作成できないときだけ {{ic|bcfg}} を使うことが推奨されています。<br />
* UEFI Shell v1 の公式バイナリは {{ic|bcfg}} コマンドをサポートしていません。UEFI pre-2.3 ファームウェアで動作する [http://dl.dropbox.com/u/17629062/Shell2.zip 修正 UEFI Shell v2 バイナリ] をダウンロードできます。<br />
}}<br />
<br />
現在のブートエントリのリストを出力するには:<br />
<br />
Shell> bcfg boot dump -v<br />
<br />
4番目の(番号は0から始まります)オプションとしてブートメニューに rEFInd (例) のブートメニューエントリを追加するには:<br />
<br />
Shell> bcfg boot add 3 fs0:\EFI\refind\refind_x64.efi "rEFInd"<br />
<br />
{{ic|fs0:}} は EFI System Partition に、{{ic|\EFI\refind\refind_x64.efi}} は起動するファイルにそれぞれ適切にマッピングしてください。<br />
<br />
4番目のブートオプションを削除するには:<br />
<br />
Shell> bcfg boot rm 3<br />
<br />
ブートオプション #3 を #0 (つまり UEFI ブートメニューの最初のエントリ) に移動するには:<br />
<br />
Shell> bcfg boot mv 3 0<br />
<br />
bcfg のヘルプを見るには<br />
<br />
Shell> help bcfg -v -b<br />
<br />
もしくは<br />
<br />
Shell> bcfg -? -v -b<br />
<br />
==== map ====<br />
<br />
{{ic|map}} はデバイスマッピング (利用可能なファイルシステム ({{ic|fs0}}) とストレージデバイス ({{ic|blk0}}) の名前) の一覧を表示します。<br />
<br />
{{ic|cd}} や {{ic|ls}} などのファイルシステムコマンドを実行する前に、ファイルシステムの名前を入力してシェルを適切なファイルシステムに変更する必要があります:<br />
<br />
Shell> fs0:<br />
fs0:\> cd EFI/<br />
<br />
==== edit ====<br />
<br />
{{ic|edit}} コマンドは nano テキストエディタに似たベーシックなテキストエディタを提供します、ただし機能は少なくなっています。EDIT コマンドのテキストエディタは UTF-8 エンコードや LF と CRLF の改行コードを扱うことができます。<br />
<br />
例として、システムパーティションの rEFInd の {{ic|refind.conf}} を編集するには (ファームウェア内の {{ic|fs0:}})<br />
<br />
Shell> fs0:<br />
FS0:\> cd \EFI\arch\refind<br />
FS0:\EFI\arch\refind\> edit refind.conf<br />
<br />
ヘルプを出すには {{ic|Ctrl-E}} を押して下さい。<br />
<br />
== UEFI ブータブルメディア ==<br />
<br />
=== ISO から UEFI ブータブル USB を作成する ===<br />
<br />
[[USB インストールメディア#BIOS・UEFI ブータブル USB]] を参照してください。<br />
<br />
=== オプティカルメディアから UEFI ブートサポートを削除する ===<br />
<br />
{{Note|このセクションでは USB フラッシュドライブではなく '''CD/DVD''' (オプティカルメディア) から UEFI ブートサポートを削除する方法を説明しています。}}<br />
<br />
ほとんどの32ビット EFI Mac といくつかの64ビット EFI Mac は UEFI(X64)+BIOS ブータブル CD/DVD からの起動を拒否します。オプティカルメディアを使ってインストールをしたい場合、まず UEFI サポートを削除する必要があります。<br />
<br />
* 公式インストールメディアをマウントして前のセクションで示されているように {{ic|archisolabel}} を取得してください。<br />
<br />
# mount -o loop ''input.iso'' /mnt/iso<br />
<br />
* {{pkg|libisoburn}} に含まれている {{ic|xorriso}} を使って UEFI Optical Media ブートサポートを除いた ISO を再生成してください (archisolabel は "ARCH_201411" などに適当に置き換えて下さい)。<br />
<br />
{{bc|1=<br />
$ xorriso -as mkisofs -iso-level 3 \<br />
-full-iso9660-filenames\<br />
-volid "''archisolabel''" \<br />
-appid "Arch Linux CD" \<br />
-publisher "Arch Linux <https://www.archlinux.org>" \<br />
-preparer "prepared by $USER" \<br />
-eltorito-boot isolinux/isolinux.bin \<br />
-eltorito-catalog isolinux/boot.cat \<br />
-no-emul-boot -boot-load-size 4 -boot-info-table \<br />
-isohybrid-mbr "/mnt/iso/isolinux/isohdpfx.bin" \<br />
-output ''output.iso'' /mnt/iso/<br />
}}<br />
<br />
* {{ic|''output.iso''}} をオプティカルメディアに焼いて通常通りインストールに進んで下さい。<br />
<br />
=== 32ビット UEFI で 64ビットカーネルを起動する ===<br />
<br />
[[Archiso|公式 ISO]] は、32ビット (IA32) UEFI システムからの起動をサポートしていません ({{Bug|53182}})。カーネル内で、UEFI モード から起動するために EFISTUB を利用しているためです。64ビットカーネルを32ビット UEFIから起動するには、EFI Boot スタブに依存せずにカーネルを動かすようなブートローダーを利用しなければなりません。<br />
<br />
{{Tip|[[Archboot]] ISO は32ビット UEFI システムからの起動をサポートしています。}}<br />
<br />
== ネイティブサポートのない環境で UEFI をテストする ==<br />
<br />
=== 仮想マシン用の OVMF ===<br />
<br />
[https://tianocore.github.io/ovmf/ OVMF] は仮想マシンで UEFI サポートを有効にする tianocore プロジェクトです。OVMF には QEMU 用のサンプル UEFI ファームウェアが含まれています。<br />
<br />
[[公式リポジトリ]]から {{pkg|ovmf}} をインストールして次のように実行することができます:<br />
<br />
$ qemu-system-x86_64 -enable-kvm -net none -m 1024 -drive file=/usr/share/ovmf/ovmf_x64.bin,format=raw,if=pflash,readonly<br />
<br />
=== BIOS システム用の DUET ===<br />
<br />
DUET は、BIOS の OS ブートと同じような方法で、BIOS 環境から完全な UEFI 環境をチェーンロードできるようにする tianocore プロジェクトです。この方法については http://www.insanelymac.com/forum/topic/186440-linux-and-windows-uefi-boot-using-tianocore-duet-firmware/ で広く議論されています。DUET を設定する手順は https://gitlab.com/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer/blob/master/Migle_BootDuet_INSTALL.txt にあります。<br />
<br />
また、修正 DUET イメージを提供する [https://sourceforge.net/projects/cloverefiboot/ Clover EFI bootloader] を試すことも可能です。特定環境の fix が含まれており DUET と比べて頻繁に更新されています。<br />
<br />
== トラブルシューティング ==<br />
<br />
=== UEFI モードで Windows 7 が起動しない ===<br />
<br />
Windows を GPT パーティションの別のハードディスクにインストールしていてコンピュータに MBR でパーティションされたハードディスクを接続している場合、UEFI BIOS が (MBR パーティションを起動するための) CSM サポートを起動しているせいで Windows が起動できなくなっている可能性があります。解決するには MBR ハードディスクを GPT パーティションに結合するか、MBR ハードディスクが接続されている SATA ポートを無効化する、もしくはハードディスクから SATA コネクタを抜いて下さい。<br />
<br />
この問題が起こるマザーボード:<br />
<br />
* Gigabyte Z77X-UD3H rev. 1.1 (UEFI BIOS バージョン F19e)<br />
** UEFI を起動するための UEFI BIOS オプションだけでは UEFI BIOS による CSM の起動を阻止できません<br />
<br />
=== Windows によってブート順序が変わってしまう ===<br />
マザーボードによっては起動する度に Windows 8 によって NVRAM の起動順序が変わってしまうことがあります (ASRock Z77 Extreme4 で確認)。この問題は Windows Boot Manager に Windows を起動する代わりに他のローダーをロードしてもらうようにすれば解決できます。Windows の管理者モードのコンソールで次のコマンドを実行してください:<br />
bcdedit /set {bootmgr} path \EFI\boot_app_dir\boot_app.efi<br />
<br />
=== USB メディアが黒画面で固まる ===<br />
<br />
* この問題は [[Kernel Mode Setting|KMS]] の問題によって起こることがあります。USB を起動するときは [[Kernel_Mode_Setting#モードセッティングを無効にする|KMS を無効化]]してみて下さい。<br />
<br />
* 問題が KMS によるものではない場合、おそらく [[EFISTUB]] ブートのバグによる問題です (詳しくは {{Bug|33745}} や [https://bbs.archlinux.org/viewtopic.php?id=156670] を見て下さい)。公式 ISO ([[Archiso]]) と [[Archboot]] iso はどちらも UEFI モードでカーネルを起動するのに EFISTUB (メニューは [[Gummiboot]] ブートマネージャ) を使っています。この問題が起こった場合は下のセクションで書かれているように USB の UEFI ブートローダーとして [[GRUB]] を使って下さい。<br />
<br />
==== GRUB の使用 ====<br />
<br />
* [[USB インストールメディア#BIOS・UEFI ブータブル USB]] に書かれているように USB フラッシュインストールドライブを作成してください。その後以下の手順に従って Gummiboot の代わりに GRUB を使って下さい。<br />
<br />
* {{ic|<USB>/EFI/boot/loader.efi}} を {{ic|<USB>/EFI/boot/gummiboot.efi}} にバックアップしてください。<br />
<br />
* [[GRUB#GRUB_Standalone|GRUB スタンドアロンイメージを作成]]して {{ic|<USB>/EFI/boot/loader.efi}} にコピーしてください。<br />
<br />
* 以下の内容で {{ic|<USB>/EFI/boot/grub.cfg}} を作成してください ({{ic|ARCH_YYYYMM}} は USB ディスクのラベルに置き換えて下さい、例: {{ic|ARCH_201507}}):<br />
<br />
{{hc|grub.cfg for Official ISO|<nowiki><br />
insmod part_gpt<br />
insmod part_msdos<br />
insmod fat<br />
<br />
insmod efi_gop<br />
insmod efi_uga<br />
insmod video_bochs<br />
insmod video_cirrus<br />
<br />
insmod font<br />
<br />
if loadfont "${prefix}/fonts/unicode.pf2" ; then<br />
insmod gfxterm<br />
set gfxmode="1024x768x32;auto"<br />
terminal_input console<br />
terminal_output gfxterm<br />
fi<br />
<br />
menuentry "Arch Linux archiso x86_64" {<br />
set gfxpayload=keep<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
linux /arch/boot/x86_64/vmlinuz archisobasedir=arch archisolabel=ARCH_YYYYMM add_efi_memmap<br />
initrd /arch/boot/x86_64/archiso.img<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v2" {<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
chainloader /EFI/shellx64_v2.efi<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v1" {<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
chainloader /EFI/shellx64_v1.efi<br />
}<br />
</nowiki>}}<br />
<br />
{{hc|grub.cfg for Archboot ISO|<nowiki><br />
insmod part_gpt<br />
insmod part_msdos<br />
insmod fat<br />
<br />
insmod efi_gop<br />
insmod efi_uga<br />
insmod video_bochs<br />
insmod video_cirrus<br />
<br />
insmod font<br />
<br />
if loadfont "${prefix}/fonts/unicode.pf2" ; then<br />
insmod gfxterm<br />
set gfxmode="1024x768x32;auto"<br />
terminal_input console<br />
terminal_output gfxterm<br />
fi<br />
<br />
menuentry "Arch Linux x86_64 Archboot" {<br />
set gfxpayload=keep<br />
search --no-floppy --set=root --file /boot/vmlinuz_x86_64<br />
linux /boot/vmlinuz_x86_64 cgroup_disable=memory loglevel=7 add_efi_memmap<br />
initrd /boot/initramfs_x86_64.img<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v2" {<br />
search --no-floppy --set=root --file /boot/vmlinuz_x86_64<br />
chainloader /EFI/tools/shellx64_v2.efi<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v1" {<br />
search --no-floppy --set=root --file /boot/vmlinuz_x86_64<br />
chainloader /EFI/tools/shellx64_v1.efi<br />
}<br />
</nowiki>}}<br />
<br />
=== ファームウェアのメニューに UEFI ブートローダーが表示されない ===<br />
<br />
Intel Z77 チップセットなどが搭載された一部の UEFI マザーボードでは、UEFI シェルから {{ic|efibootmgr}} や {{ic|bcfg}} を使ってエントリを追加しても、ブートメニューのリストに表示されないため使うことができません。<br />
<br />
この問題はマザーボードが Microsoft Windows しかロードしないようになっているのが原因です。解決するには Windows が使っている場所に ".efi" ファイルを配置するしかありません。<br />
<br />
Arch Linux のインストールメディア ({{ic|FSO:}}) から {{ic|bootx64.efi}} ファイルをコピーしてハードドライブ ({{ic|FS1:}}) 上の ESP パーティションの Microsoft ディレクトリに配置してください。EFI シェルを起動して以下を実行します:<br />
<br />
Shell> mkdir FS1:\EFI\Microsoft<br />
Shell> mkdir FS1:\EFI\Microsoft\Boot<br />
Shell> cp FS0:\EFI\BOOT\bootx64.efi FS1:\EFI\Microsoft\Boot\bootmgfw.efi<br />
<br />
再起動後、NVRAM に追加されたエントリがブートメニューに表示されるはずです。<br />
<br />
== 参照 ==<br />
<br />
* [[Wikipedia:ja:UEFI]]<br />
* [https://www.uefi.org/home/ UEFI Forum] - 公式の [https://uefi.org/specifications UEFI の仕様書] - GUID Partition Table は UEFI の仕様に含まれています<br />
* [https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/ UEFI boot: how does that actually work, then? - AdamW によるブログ記事]<br />
* [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/x86/x86_64/uefi.txt Linux カーネル x86_64 UEFI ドキュメント]<br />
* [https://www.intel.com/content/www/us/en/architecture-and-technology/unified-extensible-firmware-interface/efi-homepage-general-technology.html Intel の EFI に関するページ]<br />
* [https://firmware.intel.com/ Intel Architecture Firmware Resource Center]<br />
* [https://firmware.intel.com/blog/linux-efi-boot-stub Matt Fleming - The Linux EFI Boot Stub]<br />
* [https://firmware.intel.com/blog/accessing-uefi-variables-linux Matt Fleming - Accessing UEFI Variables from Linux]<br />
* [https://www.rodsbooks.com/linux-uefi/ Rod Smith - Linux on UEFI: クイックインストールガイド]<br />
* [https://lkml.org/lkml/2011/6/8/322 新しいマシンでの UEFI ブート問題 (LKML)]<br />
* [https://linuxplumbers.ubicast.tv/videos/plumbing-uefi-into-linux/ LPC 2012 Plumbing UEFI into Linux]<br />
* [https://linuxplumbers.ubicast.tv/videos/uefi-tutorial-part-1/ LPC 2012 UEFI チュートリアル : part 1]<br />
* [https://linuxplumbers.ubicast.tv/videos/uefi-tutorial-part-2/ LPC 2012 UEFI チュートリアル : part 2]<br />
* [https://www.tianocore.org/ Intel の Tianocore プロジェクト] 直接 BIOS で起動するための DuetPkg や QEMU や Oracle VirtualBox で使用される OvmfPkg が含まれているオープンソースの UEFI ファームウェア<br />
* [https://jdebp.eu/FGA/efi-boot-process.html FGA: The EFI boot process]<br />
* [https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-and-gpt-faq Microsoft の Windows と GPT の FAQ]<br />
* [https://gitlab.com/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer/wikis/Windows_x64_BIOS_to_UEFI 再インストールせずに Windows x64 を BIOS-MBR モードから UEFI-GPT モードに移行]<br />
* [https://gitlab.com/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer/wikis/Linux_Windows_BIOS_UEFI_boot_USB Linux BIOS+UEFI と Windows x64 BIOS+UEFI ブータブル USB ドライブの作成]<br />
* [https://rodsbooks.com/bios2uefi/ Rod Smith - A BIOS to UEFI Transformation]<br />
* [https://software.intel.com/en-us/articles/efi-shells-and-scripting/ EFI Shells and Scripting - Intel ドキュメント]<br />
* [https://software.intel.com/en-us/articles/uefi-shell/ UEFI Shell - Intel ドキュメント]<br />
* [http://www.hpuxtips.es/?q=node/293 UEFI Shell - bcfg コマンドの情報]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Unified_Extensible_Firmware_Interface&diff=18242
Unified Extensible Firmware Interface
2020-11-16T11:01:58Z
<p>Hiromi-mi: /* UEFI のバージョン */ 古い内容を更新</p>
<hr />
<div>[[Category:ブートプロセス]]<br />
[[en:Unified Extensible Firmware Interface]]<br />
[[es:Unified Extensible Firmware Interface]]<br />
[[it:Unified Extensible Firmware Interface]]<br />
[[ru:Unified Extensible Firmware Interface]]<br />
[[zh-hans:Unified Extensible Firmware Interface]]<br />
{{Related articles start}}<br />
{{Related|Arch ブートプロセス}}<br />
{{Related|Master Boot Record}}<br />
{{Related|EFI システムパーティション}}<br />
{{Related|GUID Partition Table}}<br />
{{Related|セキュアブート}}<br />
{{Related articles end}}<br />
<br />
'''Unified Extensible Firmware Interface''' (もしくは省略して UEFI) は新しいタイプのファームウェアで、もともとは Intel によって Itanium を使ったシステム用に設計されました (その時の名前は EFI)。UEFI は [[Wikipedia:ja:BIOS|BIOS]] システムで一般的に使われている "[[Master Boot Record|MBR]] ブートコード" メソッドとは異なる新しい OS 起動方法を取り入れています。Intel によって EFI がバージョン 1.x としてリリースされたのに始まり、それから UEFI Forum という業界団体によって開発が引き継がれ、Unified EFI という名前でバージョン 2.0 がリリースされました。このページでは UEFI ブートローダの設定は説明しません。そのような情報は[[ブートローダー]]を見て下さい。<br />
<br />
== UEFI のバージョン ==<br />
<br />
* EFI 1.x と明記しないかぎり、「EFI」と「UEFI」は相互に UEFI 2.x ファームウェアを意味するものとして使います。<br />
* Apple の EFI 実装は EFI 1.x バージョンでもなく UEFI 2.x バージョンでもなく、両方を混ぜあわせたものです。この種のファームウェアは (U)EFI の仕様には含まれていません、つまり、規格外の UEFI ファームウェアになります。また、以下の手順は明白に書かれている部分を除き、一般的な UEFI を対象としており、場合によっては手順のいくつかは [[MacBook|Mac]] では動かなかったり違っていたりする可能性があります。<br />
* 最新の UEFI 仕様は https://uefi.org/specifications にて確認できます。<br />
<br />
== BIOS ==<br />
<br />
BIOS (Basic Input-Output System) はシステムの電源が入れられた時に一度だけ起動する一番最初のプログラム(ファームウェア)です。ほとんどの場合マザーボード上のフラッシュメモリに保存されており、システムのストレージとは独立しています。BIOS は BIOS のディスク順で一番最初のディスクから最初の 440 バイト ([[Master Boot Record]]) を起動します。440 バイトのブートコード領域に収まるプログラムで出来ることはかなり少ないので、通常は [[GRUB]], [[Syslinux]], [[LILO]] などの一般的なブートローダが BIOS によってロードされ、それからオペレーティングシステムをロードしたりカーネルを直接ロードします。詳しくは [[Arch ブートプロセス]]を参照してください。<br />
<br />
== UEFI ==<br />
<br />
UEFI は分かりやすいファイルシステムとパーティションテーブル、その両方の読み込みをサポートしています。従って BIOS 環境であったような 440 バイトのコード制限 (MBR ブートコード) は存在しません。<br />
<br />
一般的に使われている UEFI ファームウェアは MBR と GPT 両方のパーティションテーブルをサポートしています。Apple-Intel Mac の EFI は MBR と GPT のほかに Apple Partition Map もサポートしていることが知られています。ほとんどの UEFI ファームウェアは HDD 内の FAT12 (フロッピーディスク)、FAT16 と FAT32 ファイルシステムへのアクセスと CD/DVD 内の ISO9660 (と UDF) へのアクセスをサポートしています。Apple-Intel Mac の EFI はそれらに加えて HFS/HFS+ ファイルシステムへのアクセスができます。<br />
<br />
MBR にブートコードがあろうとなかろうと UEFI はそれを実行しません。かわりに、UEFI は "EFI SYSTEM PARTITION" という名前のパーティションテーブル内の特別なパーティションを使います、そしてその中にファームウェアによって起動するために必要なファイルが保存されています。各ベンダーは {{ic|<EFI SYSTEM PARTITION>/EFI/<VENDOR NAME>/}} フォルダの下にそのファイルを置きます。そしてファームウェアやシェル (UEFI シェル) を使ってブートプログラムを実行できます。EFI システムパーティションは (大抵) FAT32 もしくは FAT16 でフォーマットされています。<br />
<br />
UEFI では、OS ローダーであろうとユーティリティ (メモリテストアプリやリカバリツール) であろうと、全てのプログラムは EFI ファームウェアアーキテクチャに対応する UEFI アプリケーションでなくてはなりません。最近の Apple Mac を含む、市場に出ているほとんどの UEFI ファームウェアは x86_64 EFI ファームウェアを使っています。IA32 (32ビット) EFI を使っているデバイスは古い (2008年以前の) Apple Mac と最近の Intel Cloverfield を使っている ultrabook だけです。また、古い Intel Server ボートには Intel EFI 1.10 ファームウェアを使っているものがあります。<br />
<br />
x86_64 バージョンの Linux や Windows とは異なり、x86_64 の EFI ファームウェアは 32 ビットの EFI アプリを実行することができません。従って UEFI アプリケーションはファームウェアのアーキテクチャにあわせて正しくコンパイルされている必要があります。<br />
<br />
=== UEFI のブートプロセス ===<br />
<br />
# システムのスイッチが入る - POST (Power On Self Test) プロセス<br />
# UEFI ファームウェアがロードされます。ファームウェアは起動に必要なハードウェアを初期化します<br />
# 次にファームウェアはブートマネージャのデータを読み込みどの UEFI アプリケーションをどこから (つまりどのディスク・パーティションから) 起動するか決定します<br />
# ファームウェアのブートマネージャのブートエントリに定義されているように UEFI アプリケーションをファームウェアが起動します<br />
# 起動した UEFI アプリケーションは設定によって他のアプリケーション (UEFI シェルや rEFInd の場合) やカーネルと initramfs (GRUB などのブートローダの場合) を起動します<br />
<br />
{{Note|UEFI 環境によってはブート時に UEFI アプリケーションを起動する唯一の方法が (UEFI ブートメニューでカスタムエントリがない場合) 指定位置にアプリケーションを配置することです: {{ic|<EFI SYSTEM PARTITION>/EFI/boot/bootx64.efi}} (64ビットの x86 環境)}}<br />
<br />
=== UEFI のマルチブート ===<br />
<br />
OS やベンダーはそれぞれ自身のファイルを EFI SYSTEM PARTITION に他のファイルと干渉しないように管理することができるので、UEFI を使うマルチブートは実行する UEFI アプリケーションが個々の OS のブートローダに対応しているかどうかという問題になります。このため OS を切り替えるために[[ブートローダー]]のロード機構に頼る必要はなくなります。<br />
<br />
==== Microsoft Windows のブート ====<br />
<br />
Windows Vista (SP1+) や 7、8 の x86_64 版は UEFI ファームウェアを使った起動をネイティブでサポートしています。Windows は使われているファームウェアによってパーティションタイプを強制します。Windows が UEFI モードで起動されているときは、GPT ディスクにしかインストールできません。Windows が Legacy BIOS モードで起動されているときは、MBR ディスクにしかインストールできません。これは Windows のインストールによる制限です。したがって Windows は UEFI-GPT ブートか BIOS-MBR ブートのどちらかしかサポートしておらず、UEFI-MBR や BIOS-GPT はサポートしていません。<br />
<br />
Windows のような制限は Linux カーネルには存在しませんが、使用するブートローダによっては制限が存在します。ただし同じディスクから Windows と Linux を起動したい時はブートローダ自体を使っているファームウェアとディスクパーティションに設定する必要があるので Windows の制限を考慮しなくてはなりません。同じディスクで Windows と Linux のデュアルブートをする場合、Windows によって使われている UEFI-GPT か BIOS-MBR のどちらかの方法に従うことを推奨します。<br />
<br />
32ビットの Windows は BIOS-MBR ブートだけをサポートしています。従って、32ビットの Windows と Linux を同じディスクから起動するときは、使えるディスクは MBR だけです。詳しくは https://support.microsoft.com/kb/2581408 を見て下さい。<br />
<br />
=== UEFI ファームウェアのビット数を調べる ===<br />
<br />
==== Mac でない場合 ====<br />
<br />
{{ic|/sys/firmware/efi}} ディレクトリが存在するかどうか確認してください。存在するときはカーネルは EFI モードで起動されています。この場合 UEFI のビット数はカーネルのビット数と同じです (i686 か x86_64)。<br />
<br />
{{Note|Intel Atom System-on-Chip システムには 32-bit UEFI が載っています (2013年11月2日現在)。詳細は [[#GRUB の使用]] を見て下さい。}}<br />
<br />
==== Apple Mac ==== <br />
<br />
2008年以前のほとんどの Mac は i386-efi ファームウェアを使っています。一方、2008年以降の Mac のファームウェアはほとんど x86_64-efi です。Mac OS X Snow Leopard を動かすことのできる全ての Mac は x86_64 EFI 1.x ファームウェアを使っています。<br />
<br />
Mac の efi ファームウェアのアーキテクチャを知るには、Mac OS X の端末に次のコマンドを入力してください:<br />
<br />
$ ioreg -l -p IODeviceTree | grep firmware-abi<br />
<br />
コマンドの返事が EFI32 なら、IA32 (32ビット) EFI 1.x ファームウェアです。EFI64 と返ってくるなら、x86_64 EFI ファームウェアです。ほとんどの Mac は UEFI 2.x ファームウェアを持っていません、Apple の EFI 実装は UEFI 2.x の仕様に完全には準拠していないからです。<br />
<br />
=== Secure Boot ===<br />
<br />
[[セキュアブート]]を参照してください。<br />
<br />
== UEFI の Linux カーネル設定オプション ==<br />
<br />
UEFI システムのために必要な Linux カーネル設定オプションは:<br />
<br />
CONFIG_RELOCATABLE=y<br />
CONFIG_EFI=y<br />
CONFIG_EFI_STUB=y<br />
CONFIG_X86_SYSFB=y<br />
CONFIG_FB_SIMPLE=y<br />
CONFIG_FRAMEBUFFER_CONSOLE=y<br />
<br />
UEFI Runtime Variables Support ('''efivarfs''' ファイルシステム - {{ic|/sys/firmware/efi/efivars}})。このオプションは {{ic|/usr/bin/efibootmgr}} などのツールを使って UEFI ランタイム変数を操作するのに必要なので重要です。次の設定オプションはカーネル 3.10 以上で追加されています。<br />
<br />
CONFIG_EFIVAR_FS=y<br />
<br />
UEFI Runtime Variables Support (古い '''efivars sysfs''' インターフェイス - {{ic|/sys/firmware/efi/vars}})。このオプションは efivars と sysfs-efivars がともに有効な場合の潜在的な問題を回避するため無効にしてください。<br />
<br />
CONFIG_EFI_VARS=n<br />
<br />
GUID Partition Table [[GUID Partition Table|GPT]] 設定オプション - UEFI サポートのために必須<br />
<br />
CONFIG_EFI_PARTITION=y<br />
<br />
EFI mixed-mode サポート - IA32 UEFI で x86_64 カーネルを起動するのに必要:<br />
<br />
CONFIG_EFI_MIXED=y<br />
<br />
{{Note|Linux を UEFI で起動するには上記のオプション全てが必要です。公式リポジトリの Archlinux カーネルでは有効になっています。}}<br />
<br />
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/x86/x86_64/uefi.txt より。<br />
<br />
== UEFI 変数 ==<br />
<br />
UEFI はオペレーティングシステムとファームウェアが情報を交換できるように変数を定義しています。UEFI ブート変数はブートローダや OS によって初期のシステムスタートアップのためにだけに使われます。UEFI ランタイム変数によって OS が UEFI ブートマネージャなどのファームウェアの設定や UEFI Secure Boot プロトコルなどのキーの管理ができるようになっています。次を実行することでリストを取得できます:<br />
$ efivar -l<br />
<br />
=== Linux カーネルでの UEFI 変数のサポート ===<br />
<br />
Linux カーネルは2つのインターフェイスを使って EFI 変数のデータをユーザ空間に渡します:<br />
<br />
# 新しい '''efivarfs''' インターフェイス ({{ic|efivarfs}} カーネルモジュールによって {{ic|/sys/firmware/efi/efivars}} にマウントされます) は sysfs-efivars インターフェイスの限界を越えるために作られました。変数のサイズ制限を取り払って、UEFI Secure Boot 変数をサポートしておりカーネルの上流から使用を推奨されています。カーネル 3.8 から導入され、カーネル 3.10 では {{ic|efivars}} カーネルモジュールから {{ic|efivarfs}} モジュールは分割されています。<br />
# 古い sysfs-efivars インターフェイス ({{ic|efivars}} カーネルモジュールによって {{ic|/sys/firmware/efi/vars}} に生成されます) には変数のサイズ制限などがあり、上流のカーネルではサポートされていますが Arch の公式カーネルでは完全に無効になっています。<br />
<br />
==== efivarfs と sysfs-efivars の不一致 ====<br />
<br />
sysfs-efivars と efivarfs は同時に実行することが可能ですが、データを同時に修正した時、sysfs-efivars と efivarfs のデータに不一致が生じるおそれがあります (詳しくは https://lkml.org/lkml/2013/4/16/473 を見て下さい)。core/{{pkg|linux}} 3.11 と core/{{Pkg|linux-lts}} 3.10 から sysfs-efivars は無効になりました (これは Arch のカーネルでの変更です、上流では sysfs-efivars のコードは削除されていません)。Arch では、efivarfs だけがサポートされています。[[公式リポジトリ]]にある UEFI 変数に関連したツールは全て efivarfs をサポートしています (2013年10月1日現在)。<br />
<br />
{{Note|sysfs-efivars を無効化した副作用として、Arch の公式カーネルでは {{ic|efi_pstore}} モジュールも無効になっています。}}<br />
<br />
両方のインターフェイスが有効になっている場合、片方を無効化する必要があり、ユーザー空間のツールを使って EFI VAR データにアクセスする前にインターフェイスを一度無効化してから再度有効にすることでデータを更新してください。<br />
<br />
sysfs-efivars を無効化して efivarfs を更新するには:<br />
# modprobe -r efivars<br />
# umount /sys/firmware/efi/efivars<br />
# modprobe -r efivarfs<br />
# modprobe efivarfs<br />
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars<br />
<br />
efivarfs を無効化して sysfs-efivars を更新するには:<br />
# umount /sys/firmware/efi/efivars<br />
# modprobe -r efivarfs<br />
# modprobe -r efivars<br />
# modprobe efivars<br />
<br />
=== UEFI 変数のサポートを正しく動作させるための必要条件 ===<br />
<br />
# EFI Runtime Services サポートがカーネルに存在する必要があります ({{ic|1=CONFIG_EFI=y}})。{{ic|zgrep CONFIG_EFI /proc/config.gz}} で確認できます。<br />
# カーネルのプロセッサのビット数・アーキテクチャが EFI のビット数・アーキテクチャと一致していなくてはなりません<br />
# カーネルは EFI モードで起動して下さい (via EFISTUB or any EFI bootloader, not via BIOS/CSM or Apple's "bootcamp" which is also BIOS/CSM)<br />
# カーネルコマンドラインでカーネルの EFI Runtime Services を無効にしてはいけません。つまり {{ic|noefi}} カーネルパラメータは使わないで下さい<br />
# {{ic|efivarfs}} ファイルシステムが {{ic|/sys/firmware/efi/efivars}} にマウントされている必要があります。マウントされていない時は下の [[#efivarfs のマウント]] セクションに従って下さい<br />
# {{ic|efivar}} はエラーを出さずに EFI 変数をリストアップ ({{ic|-l}} オプション) するはずです。出力の例は [[#UEFI 変数のサンプルリスト]] を見て下さい<br />
<br />
上記の条件が満たされても EFI 変数のサポートが動かないときは、以下の回避策を試して下さい:<br />
<br />
# ユーザスペースのツールが efi 変数のデータを修正できない場合、{{ic|/sys/firmware/efi/efivars/dump-*}} ファイルが存在しているかチェックしてください。存在しているときは、ファイルを削除してから再起動してもう一度試して下さい。<br />
# 上の手順で問題が修正されない場合、{{ic|efi_no_storage_paranoia}} カーネルパラメータを使って起動してカーネルの efi 変数ストレージ領域チェックを無効にしてください。これによって efi 変数の書き込み・修正が止められている可能性があります。<br />
<br />
{{Note|{{ic|efi_no_storage_paranoia}} は必要な時だけに使い、通常のブートオプションに使用してはいけません。このカーネルコマンドライン・パラメータは NVRAM を満杯にしてマシンを文鎮化するようなことを避ける安全装置を外してしまいます。}}<br />
<br />
==== efivarfs のマウント ====<br />
<br />
{{Warning|1=デフォルトで ''efivars'' は書き込み可能でマウントされますが [https://github.com/systemd/systemd/issues/2402]、これによってシステムに致命的なダメージを与えてしまう可能性があります [https://bbs.archlinux.org/viewtopic.php?id=207549]。そのため、以下で説明しているように ''efivars'' は読み取り専用 ({{ic|-o ro}}) でマウントすることを考慮してください。ただし、読み取り専用でマウントした場合、''efibootmgr'' やブートローダーなどのツールがブート設定を変更できなくなってしまう上に、{{ic|systemctl reboot --firmware-setup}} などのコマンドが機能しなくなります。}}<br />
<br />
起動時に [[systemd]] によって自動で {{ic|efivarfs}} がマウントされなかった時は、手動で efivarfs をマウントして {{ic|efibootmgr}} などの[[#ユーザースペースツール|ユーザースペースツール]]を使うために UEFI Variable サポートを有効にする必要があります:<br />
<br />
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars<br />
<br />
{{Note|上のコマンドは '''chroot''' の前と後、両方で実行する必要があります。}}<br />
<br />
起動時に {{ic|efivarfs}} を読み取り専用でマウントするには、{{ic|/etc/fstab}} に以下を追加:<br />
<br />
{{hc|/etc/fstab|2=<br />
efivarfs /sys/firmware/efi/efivars efivarfs '''ro''',nosuid,nodev,noexec,noatime 0 0<br />
}}<br />
<br />
書き込み可能で再マウントするには、次を実行:<br />
<br />
# mount -o remount /sys/firmware/efi/efivars -o '''rw''',nosuid,nodev,noexec,noatime<br />
<br />
=== ユーザースペースツール ===<br />
<br />
UEFI 変数を表示・変更することができるツールがいくつかあります、即ち<br />
<br />
* {{App|efivar|UEFI 変数を操作するためのライブラリとツール (vathpela の efibootmgr によって使われます)|https://github.com/vathpela/efivar|{{Pkg|efivar}} または {{AUR|efivar-git}}}}<br />
* {{App|efibootmgr|UEFI Firmware Boot Manager の設定を操作するツール。上流の (http://linux.dell.com/git/efibootmgr.git) efibootmgr コードは efivarfs をサポートしていません。Fedora の Peter Jones (vathpela) による efibootmgr のフォークは efivarfs と sysfs-efivars の両方をサポートしています。|https://github.com/vathpela/efibootmgr/tree/master|{{Pkg|efibootmgr}} または {{AUR|efibootmgr-git}}{{Broken package link|パッケージが存在しません}}}}<br />
* {{App|uefivars|EFI 変数と追加の PCI 関連情報を表示します (内部で efibootmgr のコードを使っています)。2.0 は efivarfs だけをサポートしていて 1.0 は sysfs-efivars だけをサポートしています。|https://github.com/fpmurphy/Various/tree/master/uefivars-2.0|{{AUR|uefivars-git}}}}<br />
* {{App|efitools|UEFI Secure Boot の証明書・キー・署名済みのバイナリを作成・設定するためのツール (efivarfs を必要とします)。|http://blog.hansenpartnership.com/efitools-1-4-with-linux-key-manipulation-utilities-released/|{{Pkg|efitools}} または {{AUR|efitools-git}}}}<br />
* {{App|Ubuntu's Firmware Test Suite|Ubuntu のファームウェアテストスイート。|https://wiki.ubuntu.com/FirmwareTestSuite/|{{AUR|fwts}}{{Broken package link|{{aur-mirror|fwts}}}} (と {{AUR|fwts-efi-runtime-dkms}}{{Broken package link|{{aur-mirror|fwts-efi-runtime-dkms}}}}) もしくは {{AUR|fwts-git}}}}<br />
<br />
==== efibootmgr ====<br />
<br />
{{Warning|Apple Mac で {{ic|efibootmgr}} を使うとファームウェアが塞がれマザーボード ROM のリセットが必要になる可能性があります。これに関して Ubuntu/Launch バグトラッカーでバグの報告があります。Mac の場合は bless コマンドだけを使って下さい。Fedora の開発者による実験的な Linux 用 "bless" ユーティリティがあります - {{AUR|mactel-boot}}。}}<br />
<br />
{{Note|<br />
* あなたの環境で {{ic|efibootmgr}} が完全に動かない場合、再起動して UEFI Shell v2 に入り {{ic|bcfg}} コマンドを使ってブートローダのブートエントリを作成してください。<br />
* {{ic|efibootmgr}} を使えない場合、UEFI BIOS によっては BIOS から直接 uefi のブートオプションを管理できることがあります。例えば、ASUS の BIOS には "Add New Boot Option" からローカルの EFI System Partition を選択して直接 EFI スタブの位置を入力できます (例えば {{ic|\EFI\refind\refind_x64.efi}})。<br />
* 下のコマンドではサンプルとして {{Pkg|refind-efi}} ブートローダを使っています。<br />
* 上流の efibootmgr http://linux.dell.com/git/efibootmgr.git は efivarfs をサポートしていません。ただし公式の efibootmgr パッケージでは vathpela の efibootmgr が起用されており efivarfs をサポートしています。また、公式の Arch カーネルでは sysfs-efivars は完全に無効になっていて efivarfs だけをサポートしています。このセクションはあなたが efivarfs と vathpela の efibootmgr のみ使っていると仮定して書かれています。<br />
}}<br />
<br />
起動するブートローダファイルが {{ic|/boot/efi/EFI/refind/refind_x64.efi}} だと仮定します。{{ic|/boot/efi/EFI/refind/refind_x64.efi}} は {{ic|/boot/efi}} と {{ic|/EFI/refind/refind_x64.efi}} とに分割できますが、{{ic|/boot/efi}} は EFI システムパーティションのマウントポイントで、ここでは {{ic|/dev/sdXY}} と仮定します (この {{ic|X}} と {{ic|Y}} は本当の値の代替値です - 例:- {{ic|/dev/sda1}} , X=a Y=1)。<br />
<br />
(マウントポイントが {{ic|/boot/efi}} だとして) 実際の EFI システムパーティションの ({{ic|/dev/sdXY}} という形式の) デバイスパスを調べるには、次を実行してください:<br />
<br />
# findmnt /boot/efi<br />
TARGET SOURCE FSTYPE OPTIONS<br />
/boot/efi /dev/sdXY vfat rw,flush,tz=UTC<br />
<br />
uefi 変数がカーネルでサポートされていて正しく動作していることを確認してください:<br />
<br />
# efivar -l<br />
<br />
efivar がエラーを出さずに uefi 変数を表示した時は、次に進んで下さい。エラーが出た場合、[[#UEFI 変数のサポートを正しく動作させるための必要条件]] が全て満たされているか確認してください。<br />
<br />
それから efibootmgr を使って以下のようにブートエントリを作成します:<br />
<br />
# efibootmgr -c -d /dev/sdX -p Y -l /EFI/refind/refind_x64.efi -L "rEFInd"<br />
<br />
{{Note|1=UEFI はパスの区切り記号としてバックスラッシュ {{ic|\}} を使います (Windows のパスと似ています)。ただし公式の {{Pkg|efibootmgr}} パッケージはパスの区切りにスラッシュ {{ic|/}} を使う unix 形式のパスを {{ic|-l}} オプションでサポートしています。Efibootmgr はローダーのパスを変換する前に {{ic|/}} を {{ic|\}} に内部で変換します。この機能を efibootmgr に組み込む git コミットは http://linux.dell.com/cgi-bin/cgit.cgi/efibootmgr.git/commit/?id=f38f4aaad1dfa677918e417c9faa6e3286411378 です。}}<br />
<br />
上のコマンドにある {{ic|/boot/efi/EFI/refind/refind_x64.efi}} は {{ic|/boot/efi}} と {{ic|/EFI/refind/refind_x64.efi}} になりドライブ {{ic|/dev/sdX}} -> パーティション {{ic|Y}} -> ファイル {{ic|/EFI/refind/refind_x64.efi}} と翻訳されます。<br />
<br />
'label' は UEFI ブートメニューで表示されるメニューエントリの名前です。この名前はユーザーが選ぶことができシステムのブートには影響がありません。詳しくは [http://linux.dell.com/cgi-bin/cgit.cgi/efibootmgr.git/plain/README efibootmgr GIT README] を見て下さい。<br />
<br />
FAT32 ファイルシステムは UTF-8 エンコードを使わないのでデフォルトで大文字・小文字を区別しません。上の場合ではファームウェアは小文字の 'efi' の代わりに大文字の 'EFI' を使っていますが、{{ic|\EFI\gummiboot\gummibootx64.efi}} と {{ic|\efi\gummiboot\gummibootx64.efi}} に違いはありません (ファイルシステムのエンコードが UTF-8 の場合は話が変わります)。<br />
<br />
== EFI System Partition ==<br />
<br />
[[EFI システムパーティション]]を参照してください。<br />
<br />
== UEFI シェル ==<br />
<br />
UEFI シェルは、uefi ブートローダを含む、uefi アプリケーションを起動するためのファームウェア用のシェル/ターミナルです。それとは別に、シェルは、システムやファームウェアのメモリーマップ (memmap) などの様々な情報を取得したり、ブートマネージャ変数を変更したり (bcfg)、パーティションプログラムを実行したり (diskpart)、uefi ドライバをロードしたり、テキストファイルを編集したり (edit) するのにも使われます。<br />
<br />
=== UEFI シェルを入手する === <br />
<br />
Intel の Tianocore UDK/EDK2 Sourceforge.net プロジェクトから BSD ライセンスの UEFI シェルをダウンロードできます:<br />
<br />
* [[Arch User Repository|AUR]] '''{{AUR|uefi-shell-git}}''' パッケージ (推奨) - x86_64 環境の x86_64 シェルと i686 環境の IA32 シェルを提供します - 最新の Tianocore EDK2 SVN ソースから直接コンパイル<br />
* Arch のインストールメディアイメージには EFI ディレクトリに Shell v1 と Shell v2 のコピーが存在します<br />
* [https://github.com/tianocore/edk2/tree/master/ShellBinPkg Precompiled UEFI Shell v2 バイナリ] (may not be up-to-date)<br />
* [https://github.com/tianocore/edk2/tree/master/EdkShellBinPkg Precompiled UEFI Shell v1 バイナリ] (not updated anymore upstream)<br />
<br />
Shell v2 は UEFI 2.3 以上のシステム上でだけ動作します。UEFI 2.3 以上のシステムでは Shell v1 より v2 を使うことが推奨されます。Shell v1 はスペックに関係なく全ての UEFI システムで動作するはずです。詳しくは [https://sourceforge.net/apps/mediawiki/tianocore/index.php?title=ShellPkg ShellPkg] や [https://sourceforge.net/mailarchive/message.php?msg_id=28690732 this mail] を見て下さい。<br />
<br />
=== UEFI シェルの起動 ===<br />
<br />
Asus や AMI Aptio のマザーボード (Sandy Bridge 以上) ベースの x86_64 UEFI ファームウェアには {{ic|"Launch EFI Shell from filesystem device"}} という名前のオプションが提供されていることがあります。そういったマザーボードでは、x86_64 UEFI シェルをダウンロードして EFI SYSTEM PARTITION に {{ic|<EFI_SYSTEM_PARTITION>/shellx64.efi}} としてコピーしてください (ほとんどの場合 {{ic|/boot/efi/shellx64.efi}})。<br />
<br />
Phoenix SecureCore Tiano UEFI ファームウェアを使っているシステムには UEFI シェルが組み込まれていることが知られており {{ic|F6}}, {{ic|F11}}, {{ic|F12}} キーのどれかで起動できます。<br />
<br />
{{Note|上記のメソッドを使って直接ファームウェアから UEFI シェルを起動できない場合、{{ic|(USB)/efi/boot/bootx64.efi}} としてコピーされた {{ic|Shell.efi}} で FAT32 USB ペンドライブを作成してください。この USB はファームウェアブートメニューを表示するはずです。このオプションを起動することで UEFI シェルが起動されます。}}<br />
<br />
=== 重要な UEFI シェルコマンド ===<br />
<br />
UEFI シェルコマンドはそれぞれのページの出力ごとにポーズを入れる {{ic|-b}} オプションをサポートしています。利用できるコマンドを表示するには {{ic|help -b}} を実行してください。<br />
<br />
詳しい情報は https://software.intel.com/en-us/articles/efi-shells-and-scripting/<br />
<br />
==== bcfg ====<br />
<br />
{{ic|bcfg}} コマンドは UEFI NVRAM エントリを修正して、ブートエントリやドライバオプションを変更できるようにするために使われます。このコマンドについては "UEFI Shell Specification 2.0" pdf ドキュメントの 83 ページ (Section 5.3) で詳しく説明されています。<br />
<br />
{{Note|<br />
* {{ic|efibootmgr}} が上手くブートエントリを作成できないときだけ {{ic|bcfg}} を使うことが推奨されています。<br />
* UEFI Shell v1 の公式バイナリは {{ic|bcfg}} コマンドをサポートしていません。UEFI pre-2.3 ファームウェアで動作する [http://dl.dropbox.com/u/17629062/Shell2.zip 修正 UEFI Shell v2 バイナリ] をダウンロードできます。<br />
}}<br />
<br />
現在のブートエントリのリストを出力するには:<br />
<br />
Shell> bcfg boot dump -v<br />
<br />
4番目の(番号は0から始まります)オプションとしてブートメニューに rEFInd (例) のブートメニューエントリを追加するには:<br />
<br />
Shell> bcfg boot add 3 fs0:\EFI\refind\refind_x64.efi "rEFInd"<br />
<br />
{{ic|fs0:}} は EFI System Partition に、{{ic|\EFI\refind\refind_x64.efi}} は起動するファイルにそれぞれ適切にマッピングしてください。<br />
<br />
4番目のブートオプションを削除するには:<br />
<br />
Shell> bcfg boot rm 3<br />
<br />
ブートオプション #3 を #0 (つまり UEFI ブートメニューの最初のエントリ) に移動するには:<br />
<br />
Shell> bcfg boot mv 3 0<br />
<br />
bcfg のヘルプを見るには<br />
<br />
Shell> help bcfg -v -b<br />
<br />
もしくは<br />
<br />
Shell> bcfg -? -v -b<br />
<br />
==== map ====<br />
<br />
{{ic|map}} はデバイスマッピング (利用可能なファイルシステム ({{ic|fs0}}) とストレージデバイス ({{ic|blk0}}) の名前) の一覧を表示します。<br />
<br />
{{ic|cd}} や {{ic|ls}} などのファイルシステムコマンドを実行する前に、ファイルシステムの名前を入力してシェルを適切なファイルシステムに変更する必要があります:<br />
<br />
Shell> fs0:<br />
fs0:\> cd EFI/<br />
<br />
==== edit ====<br />
<br />
{{ic|edit}} コマンドは nano テキストエディタに似たベーシックなテキストエディタを提供します、ただし機能は少なくなっています。EDIT コマンドのテキストエディタは UTF-8 エンコードや LF と CRLF の改行コードを扱うことができます。<br />
<br />
例として、システムパーティションの rEFInd の {{ic|refind.conf}} を編集するには (ファームウェア内の {{ic|fs0:}})<br />
<br />
Shell> fs0:<br />
FS0:\> cd \EFI\arch\refind<br />
FS0:\EFI\arch\refind\> edit refind.conf<br />
<br />
ヘルプを出すには {{ic|Ctrl-E}} を押して下さい。<br />
<br />
== UEFI ブータブルメディア ==<br />
<br />
=== ISO から UEFI ブータブル USB を作成する ===<br />
<br />
[[USB インストールメディア#BIOS・UEFI ブータブル USB]] を参照してください。<br />
<br />
=== オプティカルメディアから UEFI ブートサポートを削除する ===<br />
<br />
{{Note|このセクションでは USB フラッシュドライブではなく '''CD/DVD''' (オプティカルメディア) から UEFI ブートサポートを削除する方法を説明しています。}}<br />
<br />
ほとんどの32ビット EFI Mac といくつかの64ビット EFI Mac は UEFI(X64)+BIOS ブータブル CD/DVD からの起動を拒否します。オプティカルメディアを使ってインストールをしたい場合、まず UEFI サポートを削除する必要があります。<br />
<br />
* 公式インストールメディアをマウントして前のセクションで示されているように {{ic|archisolabel}} を取得してください。<br />
<br />
# mount -o loop ''input.iso'' /mnt/iso<br />
<br />
* {{pkg|libisoburn}} に含まれている {{ic|xorriso}} を使って UEFI Optical Media ブートサポートを除いた ISO を再生成してください (archisolabel は "ARCH_201411" などに適当に置き換えて下さい)。<br />
<br />
{{bc|1=<br />
$ xorriso -as mkisofs -iso-level 3 \<br />
-full-iso9660-filenames\<br />
-volid "''archisolabel''" \<br />
-appid "Arch Linux CD" \<br />
-publisher "Arch Linux <https://www.archlinux.org>" \<br />
-preparer "prepared by $USER" \<br />
-eltorito-boot isolinux/isolinux.bin \<br />
-eltorito-catalog isolinux/boot.cat \<br />
-no-emul-boot -boot-load-size 4 -boot-info-table \<br />
-isohybrid-mbr "/mnt/iso/isolinux/isohdpfx.bin" \<br />
-output ''output.iso'' /mnt/iso/<br />
}}<br />
<br />
* {{ic|''output.iso''}} をオプティカルメディアに焼いて通常通りインストールに進んで下さい。<br />
<br />
=== 32ビット UEFI で 64ビットカーネルを起動する ===<br />
<br />
[[Archiso|公式 ISO]] は、32ビット (IA32) UEFI システムからの起動をサポートしていません ({{Bug|53182}})。カーネル内で、UEFI モード から起動するために EFISTUB を利用しているためです。64ビットカーネルを32ビット UEFIから起動するには、EFI Boot スタブに依存せずにカーネルを動かすようなブートローダーを利用しなければなりません。<br />
<br />
{{Tip|[[Archboot]] ISO は32ビット UEFI システムからの起動をサポートしています。}}<br />
<br />
== ネイティブサポートのない環境で UEFI をテストする ==<br />
<br />
=== 仮想マシン用の OVMF ===<br />
<br />
[https://tianocore.github.io/ovmf/ OVMF] は仮想マシンで UEFI サポートを有効にする tianocore プロジェクトです。OVMF には QEMU 用のサンプル UEFI ファームウェアが含まれています。<br />
<br />
[[公式リポジトリ]]から {{pkg|ovmf}} をインストールして次のように実行することができます:<br />
<br />
$ qemu-system-x86_64 -enable-kvm -net none -m 1024 -drive file=/usr/share/ovmf/ovmf_x64.bin,format=raw,if=pflash,readonly<br />
<br />
=== BIOS システム用の DUET ===<br />
<br />
DUET は、BIOS の OS ブートと同じような方法で、BIOS 環境から完全な UEFI 環境をチェーンロードできるようにする tianocore プロジェクトです。この方法については http://www.insanelymac.com/forum/topic/186440-linux-and-windows-uefi-boot-using-tianocore-duet-firmware/ で広く議論されています。DUET を設定する手順は https://gitlab.com/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer/blob/master/Migle_BootDuet_INSTALL.txt にあります。<br />
<br />
また、修正 DUET イメージを提供する [https://sourceforge.net/projects/cloverefiboot/ Clover EFI bootloader] を試すことも可能です。特定環境の fix が含まれており DUET と比べて頻繁に更新されています。<br />
<br />
== トラブルシューティング ==<br />
<br />
=== UEFI モードで Windows 7 が起動しない ===<br />
<br />
Windows を GPT パーティションの別のハードディスクにインストールしていてコンピュータに MBR でパーティションされたハードディスクを接続している場合、UEFI BIOS が (MBR パーティションを起動するための) CSM サポートを起動しているせいで Windows が起動できなくなっている可能性があります。解決するには MBR ハードディスクを GPT パーティションに結合するか、MBR ハードディスクが接続されている SATA ポートを無効化する、もしくはハードディスクから SATA コネクタを抜いて下さい。<br />
<br />
この問題が起こるマザーボード:<br />
<br />
* Gigabyte Z77X-UD3H rev. 1.1 (UEFI BIOS バージョン F19e)<br />
** UEFI を起動するための UEFI BIOS オプションだけでは UEFI BIOS による CSM の起動を阻止できません<br />
<br />
=== Windows によってブート順序が変わってしまう ===<br />
マザーボードによっては起動する度に Windows 8 によって NVRAM の起動順序が変わってしまうことがあります (ASRock Z77 Extreme4 で確認)。この問題は Windows Boot Manager に Windows を起動する代わりに他のローダーをロードしてもらうようにすれば解決できます。Windows の管理者モードのコンソールで次のコマンドを実行してください:<br />
bcdedit /set {bootmgr} path \EFI\boot_app_dir\boot_app.efi<br />
<br />
=== USB メディアが黒画面で固まる ===<br />
<br />
* この問題は [[Kernel Mode Setting|KMS]] の問題によって起こることがあります。USB を起動するときは [[Kernel_Mode_Setting#モードセッティングを無効にする|KMS を無効化]]してみて下さい。<br />
<br />
* 問題が KMS によるものではない場合、おそらく [[EFISTUB]] ブートのバグによる問題です (詳しくは {{Bug|33745}} や [https://bbs.archlinux.org/viewtopic.php?id=156670] を見て下さい)。公式 ISO ([[Archiso]]) と [[Archboot]] iso はどちらも UEFI モードでカーネルを起動するのに EFISTUB (メニューは [[Gummiboot]] ブートマネージャ) を使っています。この問題が起こった場合は下のセクションで書かれているように USB の UEFI ブートローダーとして [[GRUB]] を使って下さい。<br />
<br />
==== GRUB の使用 ====<br />
<br />
* [[USB インストールメディア#BIOS・UEFI ブータブル USB]] に書かれているように USB フラッシュインストールドライブを作成してください。その後以下の手順に従って Gummiboot の代わりに GRUB を使って下さい。<br />
<br />
* {{ic|<USB>/EFI/boot/loader.efi}} を {{ic|<USB>/EFI/boot/gummiboot.efi}} にバックアップしてください。<br />
<br />
* [[GRUB#GRUB_Standalone|GRUB スタンドアロンイメージを作成]]して {{ic|<USB>/EFI/boot/loader.efi}} にコピーしてください。<br />
<br />
* 以下の内容で {{ic|<USB>/EFI/boot/grub.cfg}} を作成してください ({{ic|ARCH_YYYYMM}} は USB ディスクのラベルに置き換えて下さい、例: {{ic|ARCH_201507}}):<br />
<br />
{{hc|grub.cfg for Official ISO|<nowiki><br />
insmod part_gpt<br />
insmod part_msdos<br />
insmod fat<br />
<br />
insmod efi_gop<br />
insmod efi_uga<br />
insmod video_bochs<br />
insmod video_cirrus<br />
<br />
insmod font<br />
<br />
if loadfont "${prefix}/fonts/unicode.pf2" ; then<br />
insmod gfxterm<br />
set gfxmode="1024x768x32;auto"<br />
terminal_input console<br />
terminal_output gfxterm<br />
fi<br />
<br />
menuentry "Arch Linux archiso x86_64" {<br />
set gfxpayload=keep<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
linux /arch/boot/x86_64/vmlinuz archisobasedir=arch archisolabel=ARCH_YYYYMM add_efi_memmap<br />
initrd /arch/boot/x86_64/archiso.img<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v2" {<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
chainloader /EFI/shellx64_v2.efi<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v1" {<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
chainloader /EFI/shellx64_v1.efi<br />
}<br />
</nowiki>}}<br />
<br />
{{hc|grub.cfg for Archboot ISO|<nowiki><br />
insmod part_gpt<br />
insmod part_msdos<br />
insmod fat<br />
<br />
insmod efi_gop<br />
insmod efi_uga<br />
insmod video_bochs<br />
insmod video_cirrus<br />
<br />
insmod font<br />
<br />
if loadfont "${prefix}/fonts/unicode.pf2" ; then<br />
insmod gfxterm<br />
set gfxmode="1024x768x32;auto"<br />
terminal_input console<br />
terminal_output gfxterm<br />
fi<br />
<br />
menuentry "Arch Linux x86_64 Archboot" {<br />
set gfxpayload=keep<br />
search --no-floppy --set=root --file /boot/vmlinuz_x86_64<br />
linux /boot/vmlinuz_x86_64 cgroup_disable=memory loglevel=7 add_efi_memmap<br />
initrd /boot/initramfs_x86_64.img<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v2" {<br />
search --no-floppy --set=root --file /boot/vmlinuz_x86_64<br />
chainloader /EFI/tools/shellx64_v2.efi<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v1" {<br />
search --no-floppy --set=root --file /boot/vmlinuz_x86_64<br />
chainloader /EFI/tools/shellx64_v1.efi<br />
}<br />
</nowiki>}}<br />
<br />
=== ファームウェアのメニューに UEFI ブートローダーが表示されない ===<br />
<br />
Intel Z77 チップセットなどが搭載された一部の UEFI マザーボードでは、UEFI シェルから {{ic|efibootmgr}} や {{ic|bcfg}} を使ってエントリを追加しても、ブートメニューのリストに表示されないため使うことができません。<br />
<br />
この問題はマザーボードが Microsoft Windows しかロードしないようになっているのが原因です。解決するには Windows が使っている場所に ".efi" ファイルを配置するしかありません。<br />
<br />
Arch Linux のインストールメディア ({{ic|FSO:}}) から {{ic|bootx64.efi}} ファイルをコピーしてハードドライブ ({{ic|FS1:}}) 上の ESP パーティションの Microsoft ディレクトリに配置してください。EFI シェルを起動して以下を実行します:<br />
<br />
Shell> mkdir FS1:\EFI\Microsoft<br />
Shell> mkdir FS1:\EFI\Microsoft\Boot<br />
Shell> cp FS0:\EFI\BOOT\bootx64.efi FS1:\EFI\Microsoft\Boot\bootmgfw.efi<br />
<br />
再起動後、NVRAM に追加されたエントリがブートメニューに表示されるはずです。<br />
<br />
== 参照 ==<br />
<br />
* [[Wikipedia:ja:UEFI]]<br />
* [https://www.uefi.org/home/ UEFI Forum] - 公式の [https://uefi.org/specifications UEFI の仕様書] - GUID Partition Table は UEFI の仕様に含まれています<br />
* [https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/ UEFI boot: how does that actually work, then? - AdamW によるブログ記事]<br />
* [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/x86/x86_64/uefi.txt Linux カーネル x86_64 UEFI ドキュメント]<br />
* [https://www.intel.com/content/www/us/en/architecture-and-technology/unified-extensible-firmware-interface/efi-homepage-general-technology.html Intel の EFI に関するページ]<br />
* [https://firmware.intel.com/ Intel Architecture Firmware Resource Center]<br />
* [https://firmware.intel.com/blog/linux-efi-boot-stub Matt Fleming - The Linux EFI Boot Stub]<br />
* [https://firmware.intel.com/blog/accessing-uefi-variables-linux Matt Fleming - Accessing UEFI Variables from Linux]<br />
* [https://www.rodsbooks.com/linux-uefi/ Rod Smith - Linux on UEFI: クイックインストールガイド]<br />
* [https://lkml.org/lkml/2011/6/8/322 新しいマシンでの UEFI ブート問題 (LKML)]<br />
* [https://linuxplumbers.ubicast.tv/videos/plumbing-uefi-into-linux/ LPC 2012 Plumbing UEFI into Linux]<br />
* [https://linuxplumbers.ubicast.tv/videos/uefi-tutorial-part-1/ LPC 2012 UEFI チュートリアル : part 1]<br />
* [https://linuxplumbers.ubicast.tv/videos/uefi-tutorial-part-2/ LPC 2012 UEFI チュートリアル : part 2]<br />
* [https://www.tianocore.org/ Intel の Tianocore プロジェクト] 直接 BIOS で起動するための DuetPkg や QEMU や Oracle VirtualBox で使用される OvmfPkg が含まれているオープンソースの UEFI ファームウェア<br />
* [https://jdebp.eu/FGA/efi-boot-process.html FGA: The EFI boot process]<br />
* [https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-and-gpt-faq Microsoft の Windows と GPT の FAQ]<br />
* [https://gitlab.com/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer/wikis/Windows_x64_BIOS_to_UEFI 再インストールせずに Windows x64 を BIOS-MBR モードから UEFI-GPT モードに移行]<br />
* [https://gitlab.com/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer/wikis/Linux_Windows_BIOS_UEFI_boot_USB Linux BIOS+UEFI と Windows x64 BIOS+UEFI ブータブル USB ドライブの作成]<br />
* [https://rodsbooks.com/bios2uefi/ Rod Smith - A BIOS to UEFI Transformation]<br />
* [https://software.intel.com/en-us/articles/efi-shells-and-scripting/ EFI Shells and Scripting - Intel ドキュメント]<br />
* [https://software.intel.com/en-us/articles/uefi-shell/ UEFI Shell - Intel ドキュメント]<br />
* [http://www.hpuxtips.es/?q=node/293 UEFI Shell - bcfg コマンドの情報]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Mastodon&diff=18241
Mastodon
2020-11-16T05:53:15Z
<p>Hiromi-mi: 古い情報を更新</p>
<hr />
<div>[[Category:ウェブアプリケーション]]<br />
[[en:Mastodon]]<br />
{{Related articles start}}<br />
{{Related|Diaspora}}<br />
{{Related|Rbenv}}<br />
{{Related|Ruby}}<br />
{{Related articles end}}<br />
[https://joinmastodon.org/ Mastodon] は [[Ruby]] で書かれたフリー・オープンソースのソーシャルネットワークです。商用プラットフォームに対する分散システムとして、特定の一企業がコミュニケーションを独占してしまうのを阻止します。信頼できるサーバーを立ち上げたら、誰とでも交流できます。誰でも Mastodon インスタンスを立ち上げることができ、ソーシャルネットワークにシームレスに参加できます。<br />
<br />
== インストール ==<br />
<br />
{{AUR|mastodon}} あるいは {{AUR|mastodon-git}} を[[インストール]]してください。<br />
その後、[https://docs.joinmastodon.org/admin/ 公式インストールガイド] に従って環境を整備してください。</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Unified_Extensible_Firmware_Interface&diff=18238
Unified Extensible Firmware Interface
2020-11-16T01:28:20Z
<p>Hiromi-mi: /* BIOS システム用の DUET */ URL更新</p>
<hr />
<div>[[Category:ブートプロセス]]<br />
[[en:Unified Extensible Firmware Interface]]<br />
[[es:Unified Extensible Firmware Interface]]<br />
[[it:Unified Extensible Firmware Interface]]<br />
[[ru:Unified Extensible Firmware Interface]]<br />
[[zh-hans:Unified Extensible Firmware Interface]]<br />
{{Related articles start}}<br />
{{Related|Arch ブートプロセス}}<br />
{{Related|Master Boot Record}}<br />
{{Related|EFI システムパーティション}}<br />
{{Related|GUID Partition Table}}<br />
{{Related|セキュアブート}}<br />
{{Related articles end}}<br />
<br />
'''Unified Extensible Firmware Interface''' (もしくは省略して UEFI) は新しいタイプのファームウェアで、もともとは Intel によって Itanium を使ったシステム用に設計されました (その時の名前は EFI)。UEFI は [[Wikipedia:ja:BIOS|BIOS]] システムで一般的に使われている "[[Master Boot Record|MBR]] ブートコード" メソッドとは異なる新しい OS 起動方法を取り入れています。Intel によって EFI がバージョン 1.x としてリリースされたのに始まり、それから UEFI Forum という業界団体によって開発が引き継がれ、Unified EFI という名前でバージョン 2.0 がリリースされました。このページでは UEFI ブートローダの設定は説明しません。そのような情報は[[ブートローダー]]を見て下さい。<br />
<br />
== UEFI のバージョン ==<br />
<br />
* EFI 1.x と明記しないかぎり、「EFI」と「UEFI」は相互に UEFI 2.x ファームウェアを意味するものとして使います。<br />
* 2015年4月15日現在、UEFI Specification 2.5 が最新のバージョンです。<br />
* Apple の EFI 実装は EFI 1.x バージョンでもなく UEFI 2.x バージョンでもなく、両方を混ぜあわせたものです。この種のファームウェアは (U)EFI の仕様には含まれていません、つまり、規格外の UEFI ファームウェアになります。また、以下の手順は明白に書かれている部分を除き、一般的な UEFI を対象としており、場合によっては手順のいくつかは [[MacBook|Mac]] では動かなかったり違っていたりする可能性があります。<br />
<br />
== BIOS ==<br />
<br />
BIOS (Basic Input-Output System) はシステムの電源が入れられた時に一度だけ起動する一番最初のプログラム(ファームウェア)です。ほとんどの場合マザーボード上のフラッシュメモリに保存されており、システムのストレージとは独立しています。BIOS は BIOS のディスク順で一番最初のディスクから最初の 440 バイト ([[Master Boot Record]]) を起動します。440 バイトのブートコード領域に収まるプログラムで出来ることはかなり少ないので、通常は [[GRUB]], [[Syslinux]], [[LILO]] などの一般的なブートローダが BIOS によってロードされ、それからオペレーティングシステムをロードしたりカーネルを直接ロードします。詳しくは [[Arch ブートプロセス]]を参照してください。<br />
<br />
== UEFI ==<br />
<br />
UEFI は分かりやすいファイルシステムとパーティションテーブル、その両方の読み込みをサポートしています。従って BIOS 環境であったような 440 バイトのコード制限 (MBR ブートコード) は存在しません。<br />
<br />
一般的に使われている UEFI ファームウェアは MBR と GPT 両方のパーティションテーブルをサポートしています。Apple-Intel Mac の EFI は MBR と GPT のほかに Apple Partition Map もサポートしていることが知られています。ほとんどの UEFI ファームウェアは HDD 内の FAT12 (フロッピーディスク)、FAT16 と FAT32 ファイルシステムへのアクセスと CD/DVD 内の ISO9660 (と UDF) へのアクセスをサポートしています。Apple-Intel Mac の EFI はそれらに加えて HFS/HFS+ ファイルシステムへのアクセスができます。<br />
<br />
MBR にブートコードがあろうとなかろうと UEFI はそれを実行しません。かわりに、UEFI は "EFI SYSTEM PARTITION" という名前のパーティションテーブル内の特別なパーティションを使います、そしてその中にファームウェアによって起動するために必要なファイルが保存されています。各ベンダーは {{ic|<EFI SYSTEM PARTITION>/EFI/<VENDOR NAME>/}} フォルダの下にそのファイルを置きます。そしてファームウェアやシェル (UEFI シェル) を使ってブートプログラムを実行できます。EFI システムパーティションは (大抵) FAT32 もしくは FAT16 でフォーマットされています。<br />
<br />
UEFI では、OS ローダーであろうとユーティリティ (メモリテストアプリやリカバリツール) であろうと、全てのプログラムは EFI ファームウェアアーキテクチャに対応する UEFI アプリケーションでなくてはなりません。最近の Apple Mac を含む、市場に出ているほとんどの UEFI ファームウェアは x86_64 EFI ファームウェアを使っています。IA32 (32ビット) EFI を使っているデバイスは古い (2008年以前の) Apple Mac と最近の Intel Cloverfield を使っている ultrabook だけです。また、古い Intel Server ボートには Intel EFI 1.10 ファームウェアを使っているものがあります。<br />
<br />
x86_64 バージョンの Linux や Windows とは異なり、x86_64 の EFI ファームウェアは 32 ビットの EFI アプリを実行することができません。従って UEFI アプリケーションはファームウェアのアーキテクチャにあわせて正しくコンパイルされている必要があります。<br />
<br />
=== UEFI のブートプロセス ===<br />
<br />
# システムのスイッチが入る - POST (Power On Self Test) プロセス<br />
# UEFI ファームウェアがロードされます。ファームウェアは起動に必要なハードウェアを初期化します<br />
# 次にファームウェアはブートマネージャのデータを読み込みどの UEFI アプリケーションをどこから (つまりどのディスク・パーティションから) 起動するか決定します<br />
# ファームウェアのブートマネージャのブートエントリに定義されているように UEFI アプリケーションをファームウェアが起動します<br />
# 起動した UEFI アプリケーションは設定によって他のアプリケーション (UEFI シェルや rEFInd の場合) やカーネルと initramfs (GRUB などのブートローダの場合) を起動します<br />
<br />
{{Note|UEFI 環境によってはブート時に UEFI アプリケーションを起動する唯一の方法が (UEFI ブートメニューでカスタムエントリがない場合) 指定位置にアプリケーションを配置することです: {{ic|<EFI SYSTEM PARTITION>/EFI/boot/bootx64.efi}} (64ビットの x86 環境)}}<br />
<br />
=== UEFI のマルチブート ===<br />
<br />
OS やベンダーはそれぞれ自身のファイルを EFI SYSTEM PARTITION に他のファイルと干渉しないように管理することができるので、UEFI を使うマルチブートは実行する UEFI アプリケーションが個々の OS のブートローダに対応しているかどうかという問題になります。このため OS を切り替えるために[[ブートローダー]]のロード機構に頼る必要はなくなります。<br />
<br />
==== Microsoft Windows のブート ====<br />
<br />
Windows Vista (SP1+) や 7、8 の x86_64 版は UEFI ファームウェアを使った起動をネイティブでサポートしています。Windows は使われているファームウェアによってパーティションタイプを強制します。Windows が UEFI モードで起動されているときは、GPT ディスクにしかインストールできません。Windows が Legacy BIOS モードで起動されているときは、MBR ディスクにしかインストールできません。これは Windows のインストールによる制限です。したがって Windows は UEFI-GPT ブートか BIOS-MBR ブートのどちらかしかサポートしておらず、UEFI-MBR や BIOS-GPT はサポートしていません。<br />
<br />
Windows のような制限は Linux カーネルには存在しませんが、使用するブートローダによっては制限が存在します。ただし同じディスクから Windows と Linux を起動したい時はブートローダ自体を使っているファームウェアとディスクパーティションに設定する必要があるので Windows の制限を考慮しなくてはなりません。同じディスクで Windows と Linux のデュアルブートをする場合、Windows によって使われている UEFI-GPT か BIOS-MBR のどちらかの方法に従うことを推奨します。<br />
<br />
32ビットの Windows は BIOS-MBR ブートだけをサポートしています。従って、32ビットの Windows と Linux を同じディスクから起動するときは、使えるディスクは MBR だけです。詳しくは https://support.microsoft.com/kb/2581408 を見て下さい。<br />
<br />
=== UEFI ファームウェアのビット数を調べる ===<br />
<br />
==== Mac でない場合 ====<br />
<br />
{{ic|/sys/firmware/efi}} ディレクトリが存在するかどうか確認してください。存在するときはカーネルは EFI モードで起動されています。この場合 UEFI のビット数はカーネルのビット数と同じです (i686 か x86_64)。<br />
<br />
{{Note|Intel Atom System-on-Chip システムには 32-bit UEFI が載っています (2013年11月2日現在)。詳細は [[#GRUB の使用]] を見て下さい。}}<br />
<br />
==== Apple Mac ==== <br />
<br />
2008年以前のほとんどの Mac は i386-efi ファームウェアを使っています。一方、2008年以降の Mac のファームウェアはほとんど x86_64-efi です。Mac OS X Snow Leopard を動かすことのできる全ての Mac は x86_64 EFI 1.x ファームウェアを使っています。<br />
<br />
Mac の efi ファームウェアのアーキテクチャを知るには、Mac OS X の端末に次のコマンドを入力してください:<br />
<br />
$ ioreg -l -p IODeviceTree | grep firmware-abi<br />
<br />
コマンドの返事が EFI32 なら、IA32 (32ビット) EFI 1.x ファームウェアです。EFI64 と返ってくるなら、x86_64 EFI ファームウェアです。ほとんどの Mac は UEFI 2.x ファームウェアを持っていません、Apple の EFI 実装は UEFI 2.x の仕様に完全には準拠していないからです。<br />
<br />
=== Secure Boot ===<br />
<br />
[[セキュアブート]]を参照してください。<br />
<br />
== UEFI の Linux カーネル設定オプション ==<br />
<br />
UEFI システムのために必要な Linux カーネル設定オプションは:<br />
<br />
CONFIG_RELOCATABLE=y<br />
CONFIG_EFI=y<br />
CONFIG_EFI_STUB=y<br />
CONFIG_X86_SYSFB=y<br />
CONFIG_FB_SIMPLE=y<br />
CONFIG_FRAMEBUFFER_CONSOLE=y<br />
<br />
UEFI Runtime Variables Support ('''efivarfs''' ファイルシステム - {{ic|/sys/firmware/efi/efivars}})。このオプションは {{ic|/usr/bin/efibootmgr}} などのツールを使って UEFI ランタイム変数を操作するのに必要なので重要です。次の設定オプションはカーネル 3.10 以上で追加されています。<br />
<br />
CONFIG_EFIVAR_FS=y<br />
<br />
UEFI Runtime Variables Support (古い '''efivars sysfs''' インターフェイス - {{ic|/sys/firmware/efi/vars}})。このオプションは efivars と sysfs-efivars がともに有効な場合の潜在的な問題を回避するため無効にしてください。<br />
<br />
CONFIG_EFI_VARS=n<br />
<br />
GUID Partition Table [[GUID Partition Table|GPT]] 設定オプション - UEFI サポートのために必須<br />
<br />
CONFIG_EFI_PARTITION=y<br />
<br />
EFI mixed-mode サポート - IA32 UEFI で x86_64 カーネルを起動するのに必要:<br />
<br />
CONFIG_EFI_MIXED=y<br />
<br />
{{Note|Linux を UEFI で起動するには上記のオプション全てが必要です。公式リポジトリの Archlinux カーネルでは有効になっています。}}<br />
<br />
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/x86/x86_64/uefi.txt より。<br />
<br />
== UEFI 変数 ==<br />
<br />
UEFI はオペレーティングシステムとファームウェアが情報を交換できるように変数を定義しています。UEFI ブート変数はブートローダや OS によって初期のシステムスタートアップのためにだけに使われます。UEFI ランタイム変数によって OS が UEFI ブートマネージャなどのファームウェアの設定や UEFI Secure Boot プロトコルなどのキーの管理ができるようになっています。次を実行することでリストを取得できます:<br />
$ efivar -l<br />
<br />
=== Linux カーネルでの UEFI 変数のサポート ===<br />
<br />
Linux カーネルは2つのインターフェイスを使って EFI 変数のデータをユーザ空間に渡します:<br />
<br />
# 新しい '''efivarfs''' インターフェイス ({{ic|efivarfs}} カーネルモジュールによって {{ic|/sys/firmware/efi/efivars}} にマウントされます) は sysfs-efivars インターフェイスの限界を越えるために作られました。変数のサイズ制限を取り払って、UEFI Secure Boot 変数をサポートしておりカーネルの上流から使用を推奨されています。カーネル 3.8 から導入され、カーネル 3.10 では {{ic|efivars}} カーネルモジュールから {{ic|efivarfs}} モジュールは分割されています。<br />
# 古い sysfs-efivars インターフェイス ({{ic|efivars}} カーネルモジュールによって {{ic|/sys/firmware/efi/vars}} に生成されます) には変数のサイズ制限などがあり、上流のカーネルではサポートされていますが Arch の公式カーネルでは完全に無効になっています。<br />
<br />
==== efivarfs と sysfs-efivars の不一致 ====<br />
<br />
sysfs-efivars と efivarfs は同時に実行することが可能ですが、データを同時に修正した時、sysfs-efivars と efivarfs のデータに不一致が生じるおそれがあります (詳しくは https://lkml.org/lkml/2013/4/16/473 を見て下さい)。core/{{pkg|linux}} 3.11 と core/{{Pkg|linux-lts}} 3.10 から sysfs-efivars は無効になりました (これは Arch のカーネルでの変更です、上流では sysfs-efivars のコードは削除されていません)。Arch では、efivarfs だけがサポートされています。[[公式リポジトリ]]にある UEFI 変数に関連したツールは全て efivarfs をサポートしています (2013年10月1日現在)。<br />
<br />
{{Note|sysfs-efivars を無効化した副作用として、Arch の公式カーネルでは {{ic|efi_pstore}} モジュールも無効になっています。}}<br />
<br />
両方のインターフェイスが有効になっている場合、片方を無効化する必要があり、ユーザー空間のツールを使って EFI VAR データにアクセスする前にインターフェイスを一度無効化してから再度有効にすることでデータを更新してください。<br />
<br />
sysfs-efivars を無効化して efivarfs を更新するには:<br />
# modprobe -r efivars<br />
# umount /sys/firmware/efi/efivars<br />
# modprobe -r efivarfs<br />
# modprobe efivarfs<br />
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars<br />
<br />
efivarfs を無効化して sysfs-efivars を更新するには:<br />
# umount /sys/firmware/efi/efivars<br />
# modprobe -r efivarfs<br />
# modprobe -r efivars<br />
# modprobe efivars<br />
<br />
=== UEFI 変数のサポートを正しく動作させるための必要条件 ===<br />
<br />
# EFI Runtime Services サポートがカーネルに存在する必要があります ({{ic|1=CONFIG_EFI=y}})。{{ic|zgrep CONFIG_EFI /proc/config.gz}} で確認できます。<br />
# カーネルのプロセッサのビット数・アーキテクチャが EFI のビット数・アーキテクチャと一致していなくてはなりません<br />
# カーネルは EFI モードで起動して下さい (via EFISTUB or any EFI bootloader, not via BIOS/CSM or Apple's "bootcamp" which is also BIOS/CSM)<br />
# カーネルコマンドラインでカーネルの EFI Runtime Services を無効にしてはいけません。つまり {{ic|noefi}} カーネルパラメータは使わないで下さい<br />
# {{ic|efivarfs}} ファイルシステムが {{ic|/sys/firmware/efi/efivars}} にマウントされている必要があります。マウントされていない時は下の [[#efivarfs のマウント]] セクションに従って下さい<br />
# {{ic|efivar}} はエラーを出さずに EFI 変数をリストアップ ({{ic|-l}} オプション) するはずです。出力の例は [[#UEFI 変数のサンプルリスト]] を見て下さい<br />
<br />
上記の条件が満たされても EFI 変数のサポートが動かないときは、以下の回避策を試して下さい:<br />
<br />
# ユーザスペースのツールが efi 変数のデータを修正できない場合、{{ic|/sys/firmware/efi/efivars/dump-*}} ファイルが存在しているかチェックしてください。存在しているときは、ファイルを削除してから再起動してもう一度試して下さい。<br />
# 上の手順で問題が修正されない場合、{{ic|efi_no_storage_paranoia}} カーネルパラメータを使って起動してカーネルの efi 変数ストレージ領域チェックを無効にしてください。これによって efi 変数の書き込み・修正が止められている可能性があります。<br />
<br />
{{Note|{{ic|efi_no_storage_paranoia}} は必要な時だけに使い、通常のブートオプションに使用してはいけません。このカーネルコマンドライン・パラメータは NVRAM を満杯にしてマシンを文鎮化するようなことを避ける安全装置を外してしまいます。}}<br />
<br />
==== efivarfs のマウント ====<br />
<br />
{{Warning|1=デフォルトで ''efivars'' は書き込み可能でマウントされますが [https://github.com/systemd/systemd/issues/2402]、これによってシステムに致命的なダメージを与えてしまう可能性があります [https://bbs.archlinux.org/viewtopic.php?id=207549]。そのため、以下で説明しているように ''efivars'' は読み取り専用 ({{ic|-o ro}}) でマウントすることを考慮してください。ただし、読み取り専用でマウントした場合、''efibootmgr'' やブートローダーなどのツールがブート設定を変更できなくなってしまう上に、{{ic|systemctl reboot --firmware-setup}} などのコマンドが機能しなくなります。}}<br />
<br />
起動時に [[systemd]] によって自動で {{ic|efivarfs}} がマウントされなかった時は、手動で efivarfs をマウントして {{ic|efibootmgr}} などの[[#ユーザースペースツール|ユーザースペースツール]]を使うために UEFI Variable サポートを有効にする必要があります:<br />
<br />
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars<br />
<br />
{{Note|上のコマンドは '''chroot''' の前と後、両方で実行する必要があります。}}<br />
<br />
起動時に {{ic|efivarfs}} を読み取り専用でマウントするには、{{ic|/etc/fstab}} に以下を追加:<br />
<br />
{{hc|/etc/fstab|2=<br />
efivarfs /sys/firmware/efi/efivars efivarfs '''ro''',nosuid,nodev,noexec,noatime 0 0<br />
}}<br />
<br />
書き込み可能で再マウントするには、次を実行:<br />
<br />
# mount -o remount /sys/firmware/efi/efivars -o '''rw''',nosuid,nodev,noexec,noatime<br />
<br />
=== ユーザースペースツール ===<br />
<br />
UEFI 変数を表示・変更することができるツールがいくつかあります、即ち<br />
<br />
* {{App|efivar|UEFI 変数を操作するためのライブラリとツール (vathpela の efibootmgr によって使われます)|https://github.com/vathpela/efivar|{{Pkg|efivar}} または {{AUR|efivar-git}}}}<br />
* {{App|efibootmgr|UEFI Firmware Boot Manager の設定を操作するツール。上流の (http://linux.dell.com/git/efibootmgr.git) efibootmgr コードは efivarfs をサポートしていません。Fedora の Peter Jones (vathpela) による efibootmgr のフォークは efivarfs と sysfs-efivars の両方をサポートしています。|https://github.com/vathpela/efibootmgr/tree/master|{{Pkg|efibootmgr}} または {{AUR|efibootmgr-git}}{{Broken package link|パッケージが存在しません}}}}<br />
* {{App|uefivars|EFI 変数と追加の PCI 関連情報を表示します (内部で efibootmgr のコードを使っています)。2.0 は efivarfs だけをサポートしていて 1.0 は sysfs-efivars だけをサポートしています。|https://github.com/fpmurphy/Various/tree/master/uefivars-2.0|{{AUR|uefivars-git}}}}<br />
* {{App|efitools|UEFI Secure Boot の証明書・キー・署名済みのバイナリを作成・設定するためのツール (efivarfs を必要とします)。|http://blog.hansenpartnership.com/efitools-1-4-with-linux-key-manipulation-utilities-released/|{{Pkg|efitools}} または {{AUR|efitools-git}}}}<br />
* {{App|Ubuntu's Firmware Test Suite|Ubuntu のファームウェアテストスイート。|https://wiki.ubuntu.com/FirmwareTestSuite/|{{AUR|fwts}}{{Broken package link|{{aur-mirror|fwts}}}} (と {{AUR|fwts-efi-runtime-dkms}}{{Broken package link|{{aur-mirror|fwts-efi-runtime-dkms}}}}) もしくは {{AUR|fwts-git}}}}<br />
<br />
==== efibootmgr ====<br />
<br />
{{Warning|Apple Mac で {{ic|efibootmgr}} を使うとファームウェアが塞がれマザーボード ROM のリセットが必要になる可能性があります。これに関して Ubuntu/Launch バグトラッカーでバグの報告があります。Mac の場合は bless コマンドだけを使って下さい。Fedora の開発者による実験的な Linux 用 "bless" ユーティリティがあります - {{AUR|mactel-boot}}。}}<br />
<br />
{{Note|<br />
* あなたの環境で {{ic|efibootmgr}} が完全に動かない場合、再起動して UEFI Shell v2 に入り {{ic|bcfg}} コマンドを使ってブートローダのブートエントリを作成してください。<br />
* {{ic|efibootmgr}} を使えない場合、UEFI BIOS によっては BIOS から直接 uefi のブートオプションを管理できることがあります。例えば、ASUS の BIOS には "Add New Boot Option" からローカルの EFI System Partition を選択して直接 EFI スタブの位置を入力できます (例えば {{ic|\EFI\refind\refind_x64.efi}})。<br />
* 下のコマンドではサンプルとして {{Pkg|refind-efi}} ブートローダを使っています。<br />
* 上流の efibootmgr http://linux.dell.com/git/efibootmgr.git は efivarfs をサポートしていません。ただし公式の efibootmgr パッケージでは vathpela の efibootmgr が起用されており efivarfs をサポートしています。また、公式の Arch カーネルでは sysfs-efivars は完全に無効になっていて efivarfs だけをサポートしています。このセクションはあなたが efivarfs と vathpela の efibootmgr のみ使っていると仮定して書かれています。<br />
}}<br />
<br />
起動するブートローダファイルが {{ic|/boot/efi/EFI/refind/refind_x64.efi}} だと仮定します。{{ic|/boot/efi/EFI/refind/refind_x64.efi}} は {{ic|/boot/efi}} と {{ic|/EFI/refind/refind_x64.efi}} とに分割できますが、{{ic|/boot/efi}} は EFI システムパーティションのマウントポイントで、ここでは {{ic|/dev/sdXY}} と仮定します (この {{ic|X}} と {{ic|Y}} は本当の値の代替値です - 例:- {{ic|/dev/sda1}} , X=a Y=1)。<br />
<br />
(マウントポイントが {{ic|/boot/efi}} だとして) 実際の EFI システムパーティションの ({{ic|/dev/sdXY}} という形式の) デバイスパスを調べるには、次を実行してください:<br />
<br />
# findmnt /boot/efi<br />
TARGET SOURCE FSTYPE OPTIONS<br />
/boot/efi /dev/sdXY vfat rw,flush,tz=UTC<br />
<br />
uefi 変数がカーネルでサポートされていて正しく動作していることを確認してください:<br />
<br />
# efivar -l<br />
<br />
efivar がエラーを出さずに uefi 変数を表示した時は、次に進んで下さい。エラーが出た場合、[[#UEFI 変数のサポートを正しく動作させるための必要条件]] が全て満たされているか確認してください。<br />
<br />
それから efibootmgr を使って以下のようにブートエントリを作成します:<br />
<br />
# efibootmgr -c -d /dev/sdX -p Y -l /EFI/refind/refind_x64.efi -L "rEFInd"<br />
<br />
{{Note|1=UEFI はパスの区切り記号としてバックスラッシュ {{ic|\}} を使います (Windows のパスと似ています)。ただし公式の {{Pkg|efibootmgr}} パッケージはパスの区切りにスラッシュ {{ic|/}} を使う unix 形式のパスを {{ic|-l}} オプションでサポートしています。Efibootmgr はローダーのパスを変換する前に {{ic|/}} を {{ic|\}} に内部で変換します。この機能を efibootmgr に組み込む git コミットは http://linux.dell.com/cgi-bin/cgit.cgi/efibootmgr.git/commit/?id=f38f4aaad1dfa677918e417c9faa6e3286411378 です。}}<br />
<br />
上のコマンドにある {{ic|/boot/efi/EFI/refind/refind_x64.efi}} は {{ic|/boot/efi}} と {{ic|/EFI/refind/refind_x64.efi}} になりドライブ {{ic|/dev/sdX}} -> パーティション {{ic|Y}} -> ファイル {{ic|/EFI/refind/refind_x64.efi}} と翻訳されます。<br />
<br />
'label' は UEFI ブートメニューで表示されるメニューエントリの名前です。この名前はユーザーが選ぶことができシステムのブートには影響がありません。詳しくは [http://linux.dell.com/cgi-bin/cgit.cgi/efibootmgr.git/plain/README efibootmgr GIT README] を見て下さい。<br />
<br />
FAT32 ファイルシステムは UTF-8 エンコードを使わないのでデフォルトで大文字・小文字を区別しません。上の場合ではファームウェアは小文字の 'efi' の代わりに大文字の 'EFI' を使っていますが、{{ic|\EFI\gummiboot\gummibootx64.efi}} と {{ic|\efi\gummiboot\gummibootx64.efi}} に違いはありません (ファイルシステムのエンコードが UTF-8 の場合は話が変わります)。<br />
<br />
== EFI System Partition ==<br />
<br />
[[EFI システムパーティション]]を参照してください。<br />
<br />
== UEFI シェル ==<br />
<br />
UEFI シェルは、uefi ブートローダを含む、uefi アプリケーションを起動するためのファームウェア用のシェル/ターミナルです。それとは別に、シェルは、システムやファームウェアのメモリーマップ (memmap) などの様々な情報を取得したり、ブートマネージャ変数を変更したり (bcfg)、パーティションプログラムを実行したり (diskpart)、uefi ドライバをロードしたり、テキストファイルを編集したり (edit) するのにも使われます。<br />
<br />
=== UEFI シェルを入手する === <br />
<br />
Intel の Tianocore UDK/EDK2 Sourceforge.net プロジェクトから BSD ライセンスの UEFI シェルをダウンロードできます:<br />
<br />
* [[Arch User Repository|AUR]] '''{{AUR|uefi-shell-git}}''' パッケージ (推奨) - x86_64 環境の x86_64 シェルと i686 環境の IA32 シェルを提供します - 最新の Tianocore EDK2 SVN ソースから直接コンパイル<br />
* Arch のインストールメディアイメージには EFI ディレクトリに Shell v1 と Shell v2 のコピーが存在します<br />
* [https://github.com/tianocore/edk2/tree/master/ShellBinPkg Precompiled UEFI Shell v2 バイナリ] (may not be up-to-date)<br />
* [https://github.com/tianocore/edk2/tree/master/EdkShellBinPkg Precompiled UEFI Shell v1 バイナリ] (not updated anymore upstream)<br />
<br />
Shell v2 は UEFI 2.3 以上のシステム上でだけ動作します。UEFI 2.3 以上のシステムでは Shell v1 より v2 を使うことが推奨されます。Shell v1 はスペックに関係なく全ての UEFI システムで動作するはずです。詳しくは [https://sourceforge.net/apps/mediawiki/tianocore/index.php?title=ShellPkg ShellPkg] や [https://sourceforge.net/mailarchive/message.php?msg_id=28690732 this mail] を見て下さい。<br />
<br />
=== UEFI シェルの起動 ===<br />
<br />
Asus や AMI Aptio のマザーボード (Sandy Bridge 以上) ベースの x86_64 UEFI ファームウェアには {{ic|"Launch EFI Shell from filesystem device"}} という名前のオプションが提供されていることがあります。そういったマザーボードでは、x86_64 UEFI シェルをダウンロードして EFI SYSTEM PARTITION に {{ic|<EFI_SYSTEM_PARTITION>/shellx64.efi}} としてコピーしてください (ほとんどの場合 {{ic|/boot/efi/shellx64.efi}})。<br />
<br />
Phoenix SecureCore Tiano UEFI ファームウェアを使っているシステムには UEFI シェルが組み込まれていることが知られており {{ic|F6}}, {{ic|F11}}, {{ic|F12}} キーのどれかで起動できます。<br />
<br />
{{Note|上記のメソッドを使って直接ファームウェアから UEFI シェルを起動できない場合、{{ic|(USB)/efi/boot/bootx64.efi}} としてコピーされた {{ic|Shell.efi}} で FAT32 USB ペンドライブを作成してください。この USB はファームウェアブートメニューを表示するはずです。このオプションを起動することで UEFI シェルが起動されます。}}<br />
<br />
=== 重要な UEFI シェルコマンド ===<br />
<br />
UEFI シェルコマンドはそれぞれのページの出力ごとにポーズを入れる {{ic|-b}} オプションをサポートしています。利用できるコマンドを表示するには {{ic|help -b}} を実行してください。<br />
<br />
詳しい情報は https://software.intel.com/en-us/articles/efi-shells-and-scripting/<br />
<br />
==== bcfg ====<br />
<br />
{{ic|bcfg}} コマンドは UEFI NVRAM エントリを修正して、ブートエントリやドライバオプションを変更できるようにするために使われます。このコマンドについては "UEFI Shell Specification 2.0" pdf ドキュメントの 83 ページ (Section 5.3) で詳しく説明されています。<br />
<br />
{{Note|<br />
* {{ic|efibootmgr}} が上手くブートエントリを作成できないときだけ {{ic|bcfg}} を使うことが推奨されています。<br />
* UEFI Shell v1 の公式バイナリは {{ic|bcfg}} コマンドをサポートしていません。UEFI pre-2.3 ファームウェアで動作する [http://dl.dropbox.com/u/17629062/Shell2.zip 修正 UEFI Shell v2 バイナリ] をダウンロードできます。<br />
}}<br />
<br />
現在のブートエントリのリストを出力するには:<br />
<br />
Shell> bcfg boot dump -v<br />
<br />
4番目の(番号は0から始まります)オプションとしてブートメニューに rEFInd (例) のブートメニューエントリを追加するには:<br />
<br />
Shell> bcfg boot add 3 fs0:\EFI\refind\refind_x64.efi "rEFInd"<br />
<br />
{{ic|fs0:}} は EFI System Partition に、{{ic|\EFI\refind\refind_x64.efi}} は起動するファイルにそれぞれ適切にマッピングしてください。<br />
<br />
4番目のブートオプションを削除するには:<br />
<br />
Shell> bcfg boot rm 3<br />
<br />
ブートオプション #3 を #0 (つまり UEFI ブートメニューの最初のエントリ) に移動するには:<br />
<br />
Shell> bcfg boot mv 3 0<br />
<br />
bcfg のヘルプを見るには<br />
<br />
Shell> help bcfg -v -b<br />
<br />
もしくは<br />
<br />
Shell> bcfg -? -v -b<br />
<br />
==== map ====<br />
<br />
{{ic|map}} はデバイスマッピング (利用可能なファイルシステム ({{ic|fs0}}) とストレージデバイス ({{ic|blk0}}) の名前) の一覧を表示します。<br />
<br />
{{ic|cd}} や {{ic|ls}} などのファイルシステムコマンドを実行する前に、ファイルシステムの名前を入力してシェルを適切なファイルシステムに変更する必要があります:<br />
<br />
Shell> fs0:<br />
fs0:\> cd EFI/<br />
<br />
==== edit ====<br />
<br />
{{ic|edit}} コマンドは nano テキストエディタに似たベーシックなテキストエディタを提供します、ただし機能は少なくなっています。EDIT コマンドのテキストエディタは UTF-8 エンコードや LF と CRLF の改行コードを扱うことができます。<br />
<br />
例として、システムパーティションの rEFInd の {{ic|refind.conf}} を編集するには (ファームウェア内の {{ic|fs0:}})<br />
<br />
Shell> fs0:<br />
FS0:\> cd \EFI\arch\refind<br />
FS0:\EFI\arch\refind\> edit refind.conf<br />
<br />
ヘルプを出すには {{ic|Ctrl-E}} を押して下さい。<br />
<br />
== UEFI ブータブルメディア ==<br />
<br />
=== ISO から UEFI ブータブル USB を作成する ===<br />
<br />
[[USB インストールメディア#BIOS・UEFI ブータブル USB]] を参照してください。<br />
<br />
=== オプティカルメディアから UEFI ブートサポートを削除する ===<br />
<br />
{{Note|このセクションでは USB フラッシュドライブではなく '''CD/DVD''' (オプティカルメディア) から UEFI ブートサポートを削除する方法を説明しています。}}<br />
<br />
ほとんどの32ビット EFI Mac といくつかの64ビット EFI Mac は UEFI(X64)+BIOS ブータブル CD/DVD からの起動を拒否します。オプティカルメディアを使ってインストールをしたい場合、まず UEFI サポートを削除する必要があります。<br />
<br />
* 公式インストールメディアをマウントして前のセクションで示されているように {{ic|archisolabel}} を取得してください。<br />
<br />
# mount -o loop ''input.iso'' /mnt/iso<br />
<br />
* {{pkg|libisoburn}} に含まれている {{ic|xorriso}} を使って UEFI Optical Media ブートサポートを除いた ISO を再生成してください (archisolabel は "ARCH_201411" などに適当に置き換えて下さい)。<br />
<br />
{{bc|1=<br />
$ xorriso -as mkisofs -iso-level 3 \<br />
-full-iso9660-filenames\<br />
-volid "''archisolabel''" \<br />
-appid "Arch Linux CD" \<br />
-publisher "Arch Linux <https://www.archlinux.org>" \<br />
-preparer "prepared by $USER" \<br />
-eltorito-boot isolinux/isolinux.bin \<br />
-eltorito-catalog isolinux/boot.cat \<br />
-no-emul-boot -boot-load-size 4 -boot-info-table \<br />
-isohybrid-mbr "/mnt/iso/isolinux/isohdpfx.bin" \<br />
-output ''output.iso'' /mnt/iso/<br />
}}<br />
<br />
* {{ic|''output.iso''}} をオプティカルメディアに焼いて通常通りインストールに進んで下さい。<br />
<br />
=== 32ビット UEFI で 64ビットカーネルを起動する ===<br />
<br />
[[Archiso|公式 ISO]] は、32ビット (IA32) UEFI システムからの起動をサポートしていません ({{Bug|53182}})。カーネル内で、UEFI モード から起動するために EFISTUB を利用しているためです。64ビットカーネルを32ビット UEFIから起動するには、EFI Boot スタブに依存せずにカーネルを動かすようなブートローダーを利用しなければなりません。<br />
<br />
{{Tip|[[Archboot]] ISO は32ビット UEFI システムからの起動をサポートしています。}}<br />
<br />
== ネイティブサポートのない環境で UEFI をテストする ==<br />
<br />
=== 仮想マシン用の OVMF ===<br />
<br />
[https://tianocore.github.io/ovmf/ OVMF] は仮想マシンで UEFI サポートを有効にする tianocore プロジェクトです。OVMF には QEMU 用のサンプル UEFI ファームウェアが含まれています。<br />
<br />
[[公式リポジトリ]]から {{pkg|ovmf}} をインストールして次のように実行することができます:<br />
<br />
$ qemu-system-x86_64 -enable-kvm -net none -m 1024 -drive file=/usr/share/ovmf/ovmf_x64.bin,format=raw,if=pflash,readonly<br />
<br />
=== BIOS システム用の DUET ===<br />
<br />
DUET は、BIOS の OS ブートと同じような方法で、BIOS 環境から完全な UEFI 環境をチェーンロードできるようにする tianocore プロジェクトです。この方法については http://www.insanelymac.com/forum/topic/186440-linux-and-windows-uefi-boot-using-tianocore-duet-firmware/ で広く議論されています。DUET を設定する手順は https://gitlab.com/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer/blob/master/Migle_BootDuet_INSTALL.txt にあります。<br />
<br />
また、修正 DUET イメージを提供する [https://sourceforge.net/projects/cloverefiboot/ Clover EFI bootloader] を試すことも可能です。特定環境の fix が含まれており DUET と比べて頻繁に更新されています。<br />
<br />
== トラブルシューティング ==<br />
<br />
=== UEFI モードで Windows 7 が起動しない ===<br />
<br />
Windows を GPT パーティションの別のハードディスクにインストールしていてコンピュータに MBR でパーティションされたハードディスクを接続している場合、UEFI BIOS が (MBR パーティションを起動するための) CSM サポートを起動しているせいで Windows が起動できなくなっている可能性があります。解決するには MBR ハードディスクを GPT パーティションに結合するか、MBR ハードディスクが接続されている SATA ポートを無効化する、もしくはハードディスクから SATA コネクタを抜いて下さい。<br />
<br />
この問題が起こるマザーボード:<br />
<br />
* Gigabyte Z77X-UD3H rev. 1.1 (UEFI BIOS バージョン F19e)<br />
** UEFI を起動するための UEFI BIOS オプションだけでは UEFI BIOS による CSM の起動を阻止できません<br />
<br />
=== Windows によってブート順序が変わってしまう ===<br />
マザーボードによっては起動する度に Windows 8 によって NVRAM の起動順序が変わってしまうことがあります (ASRock Z77 Extreme4 で確認)。この問題は Windows Boot Manager に Windows を起動する代わりに他のローダーをロードしてもらうようにすれば解決できます。Windows の管理者モードのコンソールで次のコマンドを実行してください:<br />
bcdedit /set {bootmgr} path \EFI\boot_app_dir\boot_app.efi<br />
<br />
=== USB メディアが黒画面で固まる ===<br />
<br />
* この問題は [[Kernel Mode Setting|KMS]] の問題によって起こることがあります。USB を起動するときは [[Kernel_Mode_Setting#モードセッティングを無効にする|KMS を無効化]]してみて下さい。<br />
<br />
* 問題が KMS によるものではない場合、おそらく [[EFISTUB]] ブートのバグによる問題です (詳しくは {{Bug|33745}} や [https://bbs.archlinux.org/viewtopic.php?id=156670] を見て下さい)。公式 ISO ([[Archiso]]) と [[Archboot]] iso はどちらも UEFI モードでカーネルを起動するのに EFISTUB (メニューは [[Gummiboot]] ブートマネージャ) を使っています。この問題が起こった場合は下のセクションで書かれているように USB の UEFI ブートローダーとして [[GRUB]] を使って下さい。<br />
<br />
==== GRUB の使用 ====<br />
<br />
* [[USB インストールメディア#BIOS・UEFI ブータブル USB]] に書かれているように USB フラッシュインストールドライブを作成してください。その後以下の手順に従って Gummiboot の代わりに GRUB を使って下さい。<br />
<br />
* {{ic|<USB>/EFI/boot/loader.efi}} を {{ic|<USB>/EFI/boot/gummiboot.efi}} にバックアップしてください。<br />
<br />
* [[GRUB#GRUB_Standalone|GRUB スタンドアロンイメージを作成]]して {{ic|<USB>/EFI/boot/loader.efi}} にコピーしてください。<br />
<br />
* 以下の内容で {{ic|<USB>/EFI/boot/grub.cfg}} を作成してください ({{ic|ARCH_YYYYMM}} は USB ディスクのラベルに置き換えて下さい、例: {{ic|ARCH_201507}}):<br />
<br />
{{hc|grub.cfg for Official ISO|<nowiki><br />
insmod part_gpt<br />
insmod part_msdos<br />
insmod fat<br />
<br />
insmod efi_gop<br />
insmod efi_uga<br />
insmod video_bochs<br />
insmod video_cirrus<br />
<br />
insmod font<br />
<br />
if loadfont "${prefix}/fonts/unicode.pf2" ; then<br />
insmod gfxterm<br />
set gfxmode="1024x768x32;auto"<br />
terminal_input console<br />
terminal_output gfxterm<br />
fi<br />
<br />
menuentry "Arch Linux archiso x86_64" {<br />
set gfxpayload=keep<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
linux /arch/boot/x86_64/vmlinuz archisobasedir=arch archisolabel=ARCH_YYYYMM add_efi_memmap<br />
initrd /arch/boot/x86_64/archiso.img<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v2" {<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
chainloader /EFI/shellx64_v2.efi<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v1" {<br />
search --no-floppy --set=root --label ARCH_YYYYMM<br />
chainloader /EFI/shellx64_v1.efi<br />
}<br />
</nowiki>}}<br />
<br />
{{hc|grub.cfg for Archboot ISO|<nowiki><br />
insmod part_gpt<br />
insmod part_msdos<br />
insmod fat<br />
<br />
insmod efi_gop<br />
insmod efi_uga<br />
insmod video_bochs<br />
insmod video_cirrus<br />
<br />
insmod font<br />
<br />
if loadfont "${prefix}/fonts/unicode.pf2" ; then<br />
insmod gfxterm<br />
set gfxmode="1024x768x32;auto"<br />
terminal_input console<br />
terminal_output gfxterm<br />
fi<br />
<br />
menuentry "Arch Linux x86_64 Archboot" {<br />
set gfxpayload=keep<br />
search --no-floppy --set=root --file /boot/vmlinuz_x86_64<br />
linux /boot/vmlinuz_x86_64 cgroup_disable=memory loglevel=7 add_efi_memmap<br />
initrd /boot/initramfs_x86_64.img<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v2" {<br />
search --no-floppy --set=root --file /boot/vmlinuz_x86_64<br />
chainloader /EFI/tools/shellx64_v2.efi<br />
}<br />
<br />
menuentry "UEFI Shell x86_64 v1" {<br />
search --no-floppy --set=root --file /boot/vmlinuz_x86_64<br />
chainloader /EFI/tools/shellx64_v1.efi<br />
}<br />
</nowiki>}}<br />
<br />
=== ファームウェアのメニューに UEFI ブートローダーが表示されない ===<br />
<br />
Intel Z77 チップセットなどが搭載された一部の UEFI マザーボードでは、UEFI シェルから {{ic|efibootmgr}} や {{ic|bcfg}} を使ってエントリを追加しても、ブートメニューのリストに表示されないため使うことができません。<br />
<br />
この問題はマザーボードが Microsoft Windows しかロードしないようになっているのが原因です。解決するには Windows が使っている場所に ".efi" ファイルを配置するしかありません。<br />
<br />
Arch Linux のインストールメディア ({{ic|FSO:}}) から {{ic|bootx64.efi}} ファイルをコピーしてハードドライブ ({{ic|FS1:}}) 上の ESP パーティションの Microsoft ディレクトリに配置してください。EFI シェルを起動して以下を実行します:<br />
<br />
Shell> mkdir FS1:\EFI\Microsoft<br />
Shell> mkdir FS1:\EFI\Microsoft\Boot<br />
Shell> cp FS0:\EFI\BOOT\bootx64.efi FS1:\EFI\Microsoft\Boot\bootmgfw.efi<br />
<br />
再起動後、NVRAM に追加されたエントリがブートメニューに表示されるはずです。<br />
<br />
== 参照 ==<br />
<br />
* [[Wikipedia:ja:UEFI]]<br />
* [https://www.uefi.org/home/ UEFI Forum] - 公式の [https://uefi.org/specifications UEFI の仕様書] - GUID Partition Table は UEFI の仕様に含まれています<br />
* [https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/ UEFI boot: how does that actually work, then? - AdamW によるブログ記事]<br />
* [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/x86/x86_64/uefi.txt Linux カーネル x86_64 UEFI ドキュメント]<br />
* [https://www.intel.com/content/www/us/en/architecture-and-technology/unified-extensible-firmware-interface/efi-homepage-general-technology.html Intel の EFI に関するページ]<br />
* [https://firmware.intel.com/ Intel Architecture Firmware Resource Center]<br />
* [https://firmware.intel.com/blog/linux-efi-boot-stub Matt Fleming - The Linux EFI Boot Stub]<br />
* [https://firmware.intel.com/blog/accessing-uefi-variables-linux Matt Fleming - Accessing UEFI Variables from Linux]<br />
* [https://www.rodsbooks.com/linux-uefi/ Rod Smith - Linux on UEFI: クイックインストールガイド]<br />
* [https://lkml.org/lkml/2011/6/8/322 新しいマシンでの UEFI ブート問題 (LKML)]<br />
* [https://linuxplumbers.ubicast.tv/videos/plumbing-uefi-into-linux/ LPC 2012 Plumbing UEFI into Linux]<br />
* [https://linuxplumbers.ubicast.tv/videos/uefi-tutorial-part-1/ LPC 2012 UEFI チュートリアル : part 1]<br />
* [https://linuxplumbers.ubicast.tv/videos/uefi-tutorial-part-2/ LPC 2012 UEFI チュートリアル : part 2]<br />
* [https://www.tianocore.org/ Intel の Tianocore プロジェクト] 直接 BIOS で起動するための DuetPkg や QEMU や Oracle VirtualBox で使用される OvmfPkg が含まれているオープンソースの UEFI ファームウェア<br />
* [https://jdebp.eu/FGA/efi-boot-process.html FGA: The EFI boot process]<br />
* [https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-and-gpt-faq Microsoft の Windows と GPT の FAQ]<br />
* [https://gitlab.com/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer/wikis/Windows_x64_BIOS_to_UEFI 再インストールせずに Windows x64 を BIOS-MBR モードから UEFI-GPT モードに移行]<br />
* [https://gitlab.com/tianocore_uefi_duet_builds/tianocore_uefi_duet_installer/wikis/Linux_Windows_BIOS_UEFI_boot_USB Linux BIOS+UEFI と Windows x64 BIOS+UEFI ブータブル USB ドライブの作成]<br />
* [https://rodsbooks.com/bios2uefi/ Rod Smith - A BIOS to UEFI Transformation]<br />
* [https://software.intel.com/en-us/articles/efi-shells-and-scripting/ EFI Shells and Scripting - Intel ドキュメント]<br />
* [https://software.intel.com/en-us/articles/uefi-shell/ UEFI Shell - Intel ドキュメント]<br />
* [http://www.hpuxtips.es/?q=node/293 UEFI Shell - bcfg コマンドの情報]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=NVIDIA_Optimus&diff=18237
NVIDIA Optimus
2020-11-15T14:45:03Z
<p>Hiromi-mi: /* CUDA のみで NVIDIA を利用 */ en:NVIDIA Optimus 版 630897 に追従</p>
<hr />
<div>[[Category:グラフィック]]<br />
[[en:NVIDIA Optimus]]<br />
[[ru:NVIDIA Optimus]]<br />
[[zh-hans:NVIDIA Optimus]]<br />
{{Related articles start}}<br />
{{Related|Bumblebee}}<br />
{{Related|Nouveau}}<br />
{{Related|NVIDIA}}<br />
{{Related articles end}}<br />
<br />
NVIDIA Optimus は Intel の内蔵 GPU とディスクリートの NVIDIA GPU をノートパソコンに組み込んで利用できるようにする技術です。Arch Linux で Optimus グラフィックを動作させるには、以下で示すような複雑な手順が必要となります。複数の方法が存在します:<br />
<br />
* BIOS でどちらかのデバイスを無効化する。NVIDIA デバイスを無効化した場合、バッテリーの持ちがよくなりますが、BIOS によっては無効化できない場合もあり GPU 切り替えができなくなります。<br />
<br />
* プロプライエタリの NVIDIA ドライバーに含まれている公式の Optimus サポートを使う。NVIDIA のパフォーマンスを最大限発揮できますが、GPU 切り替えは不可能で、さらにオープンソースドライバーよりもバグが多く存在します。<br />
<br />
* オープンソースの nouveau ドライバーの PRIME 機能を使う。GPU 切り替え・省電力設定が可能ですがプロプライエタリの NVIDIA ドライバーと比べるとパフォーマンスで劣ります。また、スリープやハイバネートで問題が発生する場合があります。<br />
<br />
* サードパーティの Bumblebee プログラムを使って Optimus のような機能を実現する。GPU 切り替えが可能で省電力機能も使えますが別個に設定が必要です。<br />
<br />
以下では上記の方法を説明します。<br />
<br />
== スイッチャブルグラフィックスの無効化 ==<br />
<br />
特定の GPU だけを使用して切り替えをしない場合、システムの BIOS で切り替えを無効にできないか確認してください。カードのどちらか片方を無効化するオプションがあるはずです。ノートパソコンによってはディスクリートカードしか無効化できない場合や逆の場合もありますが、片方のカードしか使わないときは確認する価値があるでしょう。<br />
<br />
他の方法は[[ハイブリッドグラフィック#ディスクリート GPU の完全な電源オフ]]を見てください。<br />
<br />
両方のカードを使う場合、または使うつもりのないカードを無効化できないときは、以下の方法を見て下さい。<br />
<br />
=== CUDA のみで NVIDIA を利用 ===<br />
<br />
レンダリングを NVIDIA 側で行わなくとも [[CUDA]] が利用できます。CUDA アプリケーションの起動前に NVIDIA GPU に電源を入れておけば、アプリケーションの起動時に必要なカーネルモジュールが読み込まれます。<br />
<br />
なお、終了後 NVIDIA GPU の電源を切る前には、{{ic|nvidia_uvm}} と {{ic|nvidia}} カーネルモジュールをアンロードしておいてください。<br />
# rmmod nvidia_uvm<br />
# rmmod nvidia<br />
<br />
[[ハイブリッドグラフィック#ディスクリート GPU の完全な電源オフ]] も参照してください。<br />
<br />
== nvidia を使う ==<br />
<br />
[[NVIDIA|プロプライエタリの NVIDIA ドライバー]]は nouveau ドライバーのような動的な切り替えはサポートしていません (つまり NVIDIA デバイスしか使用できません)。また、NVIDIA は画面にティアリングが発生する問題を認識していますが未だに修正がなされていません。そのかわり、ディスクリート GPU を利用して nouveau ドライバーよりも高い性能を発揮することができます (2013年10月現在)。<br />
<br />
まず {{Pkg|nvidia}} と {{Pkg|xorg-xrandr}} パッケージをインストールしてください。<br />
<br />
そして、{{ic|xorg.conf}} を設定します。NVIDIA カードの PCI アドレスを知る必要があるので、次のコマンドを実行してください:<br />
<br />
$ lspci | grep -E "VGA|3D"<br />
<br />
NVIDIA と書かれた行の最初の7文字が PCI アドレスです。例えば {{ic|01:00.0}} などと表記されます。{{ic|xorg.conf}} では {{ic|#:#:#}} という形式で表記する必要があります。例えば {{ic|01:00.0}} の場合 {{ic|1:0:0}} となります。<br />
<br />
{{Note|セットアップによっては EDID ファイルによる nvidia ドライバーのディスプレイの値の自動検出がされなくなることがあります。解決方法は [[#解像度や画面スキャンが正しく認識されず Xorg.log に EDID のエラーが表示される]] を見て下さい。}}<br />
<br />
バージョン 1.17.2 以降の X.Org サーバーがインストールされているなら ([http://us.download.nvidia.com/XFree86/Linux-x86/358.16/README/randr14.html]):<br />
{{hc|/etc/X11/xorg.conf|<br />
Section "Module"<br />
Load "modesetting"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "nvidia"<br />
Driver "nvidia"<br />
BusID "<BusID for NVIDIA device here>"<br />
Option "AllowEmptyInitialConfiguration"<br />
EndSection<br />
}}<br />
<br />
次に、{{ic|~/.xinitrc}} の最初に以下の2行を追加してください:<br />
<br />
{{hc|~/.xinitrc|<br />
xrandr --setprovideroutputsource modesetting NVIDIA-0<br />
xrandr --auto<br />
}}<br />
<br />
そしてドライバーをロードするために再起動し、X を起動させます。<br />
<br />
ディスプレイの dpi が正しくない場合は以下の行を追加してください:<br />
<br />
xrandr --dpi 96<br />
<br />
X の起動時に黒画面が表示される場合、{{ic|~/.xinitrc}} に記述した {{ic|xrandr}} コマンドの後にアンパサンドがないことを確認してください。アンパサンドがある場合、{{ic|xrandr}} コマンドが実行し終える前にウィンドウマネージャが起動してしまうことがあり、そうなると黒画面になってしまいます。<br />
<br />
アンパサンドがないのに黒画面になる場合、下の [[#別の設定]] を見て下さい。<br />
<br />
=== 別の設定 ===<br />
<br />
リリース 1.17.1 から、上記の設定を使っていて Xorg-server がクラッシュするようになった場合、{{ic|/etc/X11/xorg.conf}} の Intel デバイスのセクションを以下のように修正してください:<br />
<br />
{{hc|# nano /etc/X11/xorg.conf|<br />
Section "Device"<br />
Identifier "intel"<br />
Driver "modesetting"<br />
BusID "PCI:0:2:0"<br />
Option "AccelMethod" "sna"<br />
#Option "TearFree" "True"<br />
#Option "Tiling" "True"<br />
#Option "SwapbuffersWait" "True"<br />
EndSection}}<br />
<br />
上の設定と同じように、{{ic|BusID}} は ''lspci'' コマンドの出力にあわせて置き換えてください。Intel という文字列が含まれた "VGA compatible controller" の行を検索してください。例:<br />
$ lspci | grep VGA<br />
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)<br />
<br />
{{Tip|最後のコメントアウトされている3つのオプションは (有効にすると) ティアリングを抑える効果がありますが、代わりにパフォーマンスが多少落ちます。{{ic|TearFree}} オプションは {{ic|"sna"}} アクセラレーションでのみ使えるので注意してください。[[Intel Graphics]] を参照。{{ic|"AccelMethod"}} オプションには {{ic|"sna"}} または {{ic|"uxa"}} を使うことができます。Lenovo Ideapad Z50-70 59-432128 での {{ic|xorg.conf}} の例が次のページにあります: [https://pastebin.com/tMtPz381]。}}<br />
<br />
X を起動しても画面に何も表示されない場合、{{ic|/var/log/xorg.conf}} に以下のような行がないか確認してください:<br />
<br />
{{hc|/var/log/xorg.conf|<br />
[ 16112.937] (EE) Screen 1 deleted because of no matching config section.<br />
}}<br />
<br />
存在する場合、{{ic|/etc/X11/xorg.conf}} の ServerLayout セクションを変更することで問題が解決するかもしれません:<br />
<br />
{{hc|/etc/X11/xorg.conf|<br />
Section "ServerLayout"<br />
Identifier "layout"<br />
Screen '''1''' "nvidia"<br />
Inactive "intel"<br />
EndSection<br />
}}<br />
<br />
=== ディスプレイマネージャ ===<br />
<br />
ディスプレイマネージャを使用する場合、{{ic|~/.xinitrc}} の代わりにディスプレイマネージャのディスプレイ設定スクリプトを作成・編集する必要があります。<br />
<br />
==== LightDM ====<br />
<br />
[[LightDM]] ディスプレイマネージャの場合:<br />
<br />
{{hc|/etc/lightdm/display_setup.sh|<br />
#!/bin/sh<br />
xrandr --setprovideroutputsource modesetting NVIDIA-0<br />
xrandr --auto<br />
}}<br />
<br />
スクリプトに実行可能属性を付与:<br />
<br />
# chmod +x /etc/lightdm/display_setup.sh<br />
<br />
{{ic|/etc/lightdm/lightdm.conf}} の {{ic|[Seat:*]}} セクションを編集してスクリプトを実行するように lightdm を設定:<br />
<br />
{{hc|/etc/lightdm/lightdm.conf|output=<br />
[Seat:*]<br />
display-setup-script=/etc/lightdm/display_setup.sh<br />
}}<br />
<br />
再起動して、ディスプレイマネージャが起動するのを確認してください。<br />
<br />
==== SDDM ====<br />
[[SDDM]] ディスプレイマネージャの場合:<br />
<br />
{{hc|/usr/share/sddm/scripts/Xsetup|<br />
xrandr --setprovideroutputsource modesetting NVIDIA-0<br />
xrandr --auto<br />
}}<br />
<br />
==== GDM ====<br />
[[GDM]] ディスプレイマネージャの場合 {{ic|.desktop}} ファイルを作成します:<br />
<br />
{{hc|/usr/share/gdm/greeter/autostart/optimus.desktop|<br />
<nowiki>[Desktop Entry]<br />
Type=Application<br />
Name=Optimus<br />
Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto"<br />
NoDisplay=true<br />
X-GNOME-Autostart-Phase=DisplayServer</nowiki><br />
}}<br />
<br />
また、GDM が [[GDM#Xorg バックエンドを使う|Xorg バックエンドを使う]]ようになっているか確認してください。<br />
<br />
==== KDM ====<br />
<br />
KDE の [[KDM]] の場合、{{ic|/usr/share/config/kdm/Xsetup}} に xrandr の行を追加してください。<br />
<br />
=== 3D の確認 ===<br />
<br />
NVIDIA グラフィックが使われているかどうかは {{Pkg|mesa-demos}} をインストールして次のコマンドを実行することで確認できます:<br />
<br />
$ glxinfo | grep NVIDIA<br />
<br />
=== 詳細情報 ===<br />
<br />
詳しい情報は、NVIDIA の公式ページ [http://us.download.nvidia.com/XFree86/Linux-x86/370.28/README/randr14.html] を見て下さい。<br />
<br />
== トラブルシューティング ==<br />
<br />
=== 垂直同期が機能せずティアリングが発生する ===<br />
<br />
解決するには {{pkg|xorg-server}} 1.19 以上、{{pkg|linux}} カーネル 4.5 以上、{{pkg|nvidia}} 370.23 以上が必須です。[[NVIDIA#DRM カーネルモードセッティング]]を有効にすることで PRIME 同期が有効になりティアリングが解消されます。<br />
<br />
詳しくは公式の [https://devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/ フォーラムスレッド] を参照してください。<br />
<br />
=== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!) ===<br />
<br />
カーネルパラメータに {{ic|1=rcutree.rcu_idle_gp_delay=1}} を追加してください。詳しくは [https://bbs.archlinux.org/viewtopic.php?id=169742 こちら] を参照。<br />
<br />
=== 解像度や画面スキャンが正しく認識されず Xorg.log に EDID のエラーが表示される ===<br />
<br />
nVidia ドライバーがディスプレイの EDID を検出できないのが原因です。手動で EDID ファイルのパスを指定するか、同じような方法で同一の情報を提供する必要があります。<br />
<br />
EDID ファイルのパスを指定するには {{ic|Xorg.conf}} の nvidia カードの Device セクションを編集して、以下の行を追加して適当にパスを置き換えてください:<br />
<br />
{{hc|/etc/X11/xorg.conf|<br />
Section "Device"<br />
Option "ConnectedMonitor" "CRT-0"<br />
Option "CustomEDID" "CRT-0:/sys/class/drm/card0-LVDS-1/edid"<br />
Option "IgnoreEDID" "false"<br />
Option "UseEDID" "true"<br />
EndSection<br />
}}<br />
<br />
Xorg が起動しない場合は、CRT という文字列を全て DFB に置き換えてみて下さい。card0 は intel カードの識別子でディスプレイは LVDS で接続されています。edid バイナリはこのディレクトリに存在します。ハードウェアの構成が異なっている場合、CustomEDID の値も変わってくるので確認するようにしてください。パスの先頭の {{ic|/sys/class/drm}} は変わらないはずです。<br />
<br />
または、{{Pkg|read-edid}} などのツールを使って edid を自分で作成して、作成したファイルを使うようにドライバーを設定することもできます。modeline も使えますが、"UseEDID" と "IgnoreEDID" は変更するようにしてください。<br />
<br />
=== ロックアップ問題 (lspci がフリーズ) ===<br />
GTX 965M が搭載された最新のノートパソコンで (Bumblebee などで) bbswitch や nouveau を使ったときに lspci がフリーズしたり、サスペンドが失敗したり、シャットダウン時に止まってしまったり、optirun でフリーズが発生することがあります。<br />
<br />
dGPU 電源リソースがオンになっている場合、ACPI コードで失敗してフリーズが起こることがあります ([https://bugzilla.kernel.org/show_bug.cgi?id=156341 カーネルバグ 156341])。<br />
<br />
解決方法については [https://github.com/Bumblebee-Project/Bumblebee/issues/764#issuecomment-234494238 こちら] を見てください。また、{{ic|1=acpi_osi="!Windows 2015"}} や {{ic|1=acpi_osi=! acpi_osi="Windows 2009"}} を[[カーネルパラメータ]]に追加して起動することで解決することもあります。<br />
<br />
== nouveau を使う ==<br />
<br />
オープンソースの [[nouveau]] ドライバー ({{Pkg|xf86-video-nouveau}}) は PRIME という技術を使って Intel のドライバー ({{Pkg|xf86-video-intel}}) との動的な切り替えが可能です。詳しくは、[[PRIME]] の記事を見て下さい。<br />
<br />
== Bumblebee を使う ==<br />
<br />
省電力機能などの便利な機能を実装している Bumblebee を使いたい場合、[[Bumblebee]] の記事を見て下さい。</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=NVIDIA/%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB%E3%82%B7%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0&diff=18234
NVIDIA/トラブルシューティング
2020-11-15T05:04:34Z
<p>Hiromi-mi: /* Xorg が起動時に失敗するが、問題なく起動する */ -> /* Xorg がブート時に失敗し、ブート完了後は起動できる */ 誤解を招くタイトルを暫定的に訂正</p>
<hr />
<div>[[Category:グラフィック]]<br />
[[Category:X サーバー]]<br />
[[en:NVIDIA/Troubleshooting]]<br />
[[ru:NVIDIA/Troubleshooting]]<br />
== nvidia-libgl をインストールすると Wayland (gdm) がクラッシュする ==<br />
<br />
nvidia をインストールしたときに Intel CPU の古いマイクロコードが [[Wayland]] を不安定にしたり、[[GDM]] をクラッシュさせることがあります。<br />
<br />
[[マイクロコード#マイクロコードのアップデート|マイクロコードをアップデート]]することで問題は解決します。<br />
<br />
== 画面が崩れる: "Six screens" 問題 ==<br />
<br />
GeForce GT 100M を使用している場合、X を起動した後に画面が6つに分割されて解像度が 640x480 になってしまうことがあります。さらに、同じ問題は Quadro 2000 や高解像度ディスプレイでも報告されています。<br />
<br />
この問題を解決するには、{{ic|Device}} セクションで Validation Mode の {{ic|NoTotalSizeCheck}} を有効にしてください:<br />
Section "Device"<br />
...<br />
Option "ModeValidation" "NoTotalSizeCheck"<br />
...<br />
EndSection<br />
<br />
== '/dev/nvidia0' input/output error ==<br />
<br />
This error can occur for several different reasons, and the most common solution given for this error is to check for group/file permissions, which in almost every case is ''not'' the problem. The NVIDIA documentation does not talk in detail on what you should<br />
do to correct this problem but there are a few things that have worked for some people. The problem can be a IRQ conflict with another device or bad routing by either the kernel or your BIOS.<br />
<br />
まずはビデオキャプチャカードなどの他のビデオデバイスを取り外してみて問題が解決しないか確認してください。同一システム上にビデオプロセッサがたくさん存在すると、ビデオコントローラのメモリアロケーションに問題が発生してカーネルがデバイスを使えなくなることがあります。特に、ビデオメモリが極端に少ない環境では、ビデオプロセッサが一つしかないときでも問題が発生します。そのような場合、システムのビデオメモリの量を確認して (例: {{ic|lspci -v}})、カーネルにアロケーションパラメータを指定してください。例えば32ビットのカーネルの場合:<br />
vmalloc=384M<br />
<br />
64ビットのカーネルを使っている場合、ドライバーの問題によって IOMMU がオンになっている場合に NVIDIA モジュールの初期化が失敗している可能性があります。ユーザーによっては BIOS で IOMMU をオフにすることで問題が解決するようです [http://www.nvnews.net/vbulletin/showthread.php?s=68bb2fabadcb53b10b286aa42d13c5bc&t=159335][[en2:User:Clickthem#nvidia module]]。<br />
<br />
Another thing to try is to change your BIOS IRQ routing from {{ic|Operating system controlled}} to {{ic|BIOS controlled}} or the other way around. The first one can be passed as a kernel parameter:<br />
PCI=biosirq<br />
<br />
The {{ic|noacpi}} kernel parameter has also been suggested as a solution but since it disables ACPI completely it should be used with caution. Some hardware are easily damaged by overheating.<br />
<br />
{{Note|The kernel parameters can be passed either through the kernel command line or the bootloader configuration file. See your bootloader Wiki page for more information.}}<br />
<br />
== クラッシュの一般的な対処方法 ==<br />
<br />
* {{ic|xorg.conf}} で {{ic|RenderAccel}} を無効にしてみる。<br />
* Xorg が {{ic|conflicting memory type}} や {{ic|failed to allocate primary buffer: out of memory}} というエラーを出力する場合、あるいは nvidia-96xx ドライバーを使用しているときに "Signal 11" でクラッシュする場合、[[カーネルパラメータ]]に {{ic|nopat}} を追加してください。<br />
* NVIDIA のコンパイラが、カーネルをコンパイルしたのに使用した GCC と現在使っている GCC のバージョンが異なるというエラーを出力する場合、{{ic|/etc/profile}} に以下を追加してください:<br />
export IGNORE_CC_MISMATCH=1<br />
* Xorg がクラッシュする場合、PAT を無効化してみる。[[カーネルパラメータ]]に {{ic|nopat}} を追加してください。<br />
ドライバーのトラブルシューティングに関する詳細は [https://forums.geforce.com/ NVIDIA フォーラム] にあります。<br />
<br />
== 新しいバージョンのドライバーをインストールした後にパフォーマンスが悪くなる ==<br />
<br />
古いドライバーと比べて FPS が落ちている場合、まずダイレクトレンダリングがオンになっているか確認してください (glxinfo は {{Pkg|mesa-demos}} に含まれています):<br />
$ glxinfo | grep direct<br />
上のコマンドで以下のように表示されるなら:<br />
direct rendering: No<br />
これは FPS が下がっていることの兆候かもしれません。<br />
<br />
前にインストールしたバージョンのドライバーに戻して再起動すれば解決することがあります。<br />
<br />
== 400 シリーズのカードで CPU の使用率が高くなる ==<br />
<br />
400 シリーズのカードで時々 CPU の使用率が急上昇するような場合、PowerMizer が GPU のクロック周波数を断続的に変更しているのが原因です。以下を Xorg 設定の {{ic|Device}} セクションに追加して、PowerMizer の設定を Adaptive から Performance にしてください:<br />
<br />
Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3322; PowerMizerDefaultAC=0x1"<br />
<br />
== ノートパソコン: ログイン/ログアウト時に X がフリーズするが、Ctrl+Alt+Backspace で回避できる ==<br />
<br />
もし、レガシーな NVIDIA ドライバーを使っていて、ログインやログアウト時に Xorg がフリーズし (特に画面が黒と白/灰の部分に別れる)、{{ic|Ctrl+Alt+Backspace}} によるログインはできる場合 (X を終了するキーバインドを実行した時)、{{ic|/etc/modprobe.d/modprobe.conf}} に以下を追加してみてください:<br />
options nvidia NVreg_Mobile=1<br />
<br />
以下の設定は人によっては問題が解決しますが、逆にパフォーマンスが著しく悪化することもあります:<br />
options nvidia NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=33 NVreg_DeviceFileMode=0660 NVreg_SoftEDIDs=0 NVreg_Mobile=1<br />
<br />
{{ic|NVreg_Mobile}} は使用しているノートパソコンにあわせて変更する必要があります:<br />
* Dell のノートパソコンの場合 1。<br />
* コンパル製でない東芝のノートパソコンの場合 2。<br />
* その他のノートパソコンの場合 3。<br />
* コンパル製の東芝のノートパソコンの場合 4。<br />
* Gateway のノートパソコンの場合 5。<br />
<br />
詳しくは [http://http.download.nvidia.com/XFree86/Linux-x86/1.0-7182/README/readme.txt NVIDIA ドライバーの README: Appendix K] を見て下さい。<br />
<br />
== ノートパソコン/NVIDIA Optimus で画面が表示されない ==<br />
<br />
ノートパソコンでは、NVIDIA ドライバーが画面を認識できない場合、NVIDIA Optimus を使用している可能性があります: ディスプレイに接続された Intel チップセットがビデオ出力を行って、NVIDIA カードは GPU 計算だけを行ってチップセットのビデオメモリに結果を書き込みます。<br />
<br />
{{ic|<nowiki>$ lspci | grep VGA</nowiki>}} が以下のような出力をしていないか確認してください:<br />
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02)<br />
01:00.0 VGA compatible controller: nVidia Corporation Device 0df4 (rev a1)<br />
<br />
NVIDIA ドライバーは 319.12 Beta からカーネル 3.9 以上で Optimus をサポートするようになっています [https://www.nvidia.com/object/linux-display-amd64-319.12-driver.html]。<br />
<br />
もしくは、[[Intel Graphics|Intel]] ドライバーをインストールして画面を管理させ、3D ソフトウェアが必要になったときは [[Bumblebee]] を通して NVIDIA のカードを使わさせるという方法もあります。<br />
<br />
=== 対処方法 ===<br />
<br />
BIOS を起動してデフォルトのグラフィック設定を 'Optimus' から 'Discrete' に変更し、画面を認識する NVIDIA ドライバー (現時点では 295.20-1) をインストールしてください。<br />
<br />
手順:<br />
# BIOS を起動。<br />
# グラフィック設定を開く (''Config > Display'')。<br />
# 'Graphics Device' を 'Discrete Graphics' に変更 (Intel の内蔵グラフィックを無効化)。<br />
# Nvidia Optimus の OS 検知を "Disabled" に変更。<br />
# 保存して終了。<br />
<br />
Quadro 1000M が搭載された Lenovo W520 と Nvidia Optimus でテスト済みです。<br />
<br />
== 画面は認識されるが、設定が全くできない ==<br />
<br />
ときに NVIDIA と X が有効な画面を確認できないことがあります。グラフィックカードに複数の出力端子がある場合、モニターを別の端子に接続してみてください。ノートパソコンの場合、グラフィックカードに VGA/TV 出力が存在することが原因の可能性があります。{{ic|Xorg.0.log}} に詳しい情報が出力されます。<br />
<br />
誤っている {{ic|"ConnectedMonitor" Option}} をわざと {{ic|Section "Device"}} に追加して、正しく認識させる方法を確認することもできます。ConnectedMonitor については [ftp://download.nvidia.com/XFree86/Linux-x86/355.11/README/xconfigoptions.html] を参照。<br />
<br />
X を再起動した後に {{ic|Xorg.0.log}} を確認して正しい CRT-x,DFP-x,TV-x の値を見てください。<br />
<br />
{{ic|nvidia-xconfig --query-gpu-info}} で役に立つ情報が得られることもあります。<br />
<br />
== X の起動時に黒画面 / X のシャットダウン時にマシンの電源が切れる ==<br />
<br />
NVIDIA ドライバーを更新した後に、Xorg の起動時に画面が黒くなったり、Xorg をシャットダウンするとマシンの電源がオフになるようになった場合、以下の方法を試してください。もしくは、[[Nouveau]] ドライバーを使ってください。<br />
<br />
* {{ic|<nowiki>rcutree.rcu_idle_gp_delay=1</nowiki>}} [[カーネルパラメータ]]を使用する。<br />
* [[mkinitcpio]] の設定ファイルに直接 {{ic|nvidia}} モジュールを追加する。<br />
* {{ic|<nowiki>rcutree.rcu_idle_gp_delay=1</nowiki>}} [[カーネルパラメータ]]を設定して [[mkinitcpio]] の設定ファイルに {{ic|nvidia}} モジュールを追加しても問題が解決しない場合、{{Pkg|nvidia}} と {{Pkg|nvidia-libgl}}{{Broken package link|置換パッケージ: {{Pkg|nvidia-utils}}}} をこの順番で再インストールして、ドライバーをリロードしてみてください:<br />
<br />
# modprobe nvidia<br />
<br />
== バックライトがオフにならない ==<br />
<br />
デフォルトでは、タイムアウトを設定したり xset を実行すると DPMS はバックライトをオフにします。しかしながら、プロプライエタリの Nvidia ドライバーのバグによって、黒画面になるだけで節電ができないことがあります。バグが修正されるまで、対応策として root で {{ic|vbetool}} を使う方法があります。<br />
<br />
{{Pkg|vbetool}} パッケージをインストールしてください。<br />
<br />
画面をオフにして、何かキーを押したときにバックライトを再度オンにするには:<br />
<br />
# vbetool dpms off && read -n1; vbetool dpms on<br />
<br />
もしくは、xrandr でモニターの出力を有効化・無効化できます (root 権限は不要です):<br />
<br />
$ xrandr --output DP-1 --off; read -n1; xrandr --output DP-1 --auto<br />
<br />
== Flash を使用するとシステムが完全にフリーズする ==<br />
<br />
フラッシュプラグインを使っていて (マウスを動かしただけで) 時々システムが完全にフリーズして以下のエラーが出る場合:<br />
<br />
{{hc|/var/log/errors.log|<br />
NVRM: Xid (0000:01:00): 31, Ch 00000007, engmask 00000120, intr 10000000<br />
}}<br />
<br />
Flash のハードウェアアクセラレーションを無効にすれば解決するかもしれません、以下を設定:<br />
<br />
{{hc|/etc/adobe/mms.cfg|2=<br />
EnableLinuxHWVideoDecode=0<br />
}}<br />
<br />
もしくは、ハードウェアアクセラレーションを有効にしておきたい場合、ブラウザを開始する前に次を実行:<br />
export VDPAU_NVIDIA_NO_OVERLAY=1<br />
<br />
これを設定するとティアリングが発生するので注意してください。<br />
<br />
== Xorg がロードに失敗する、またはレッドスクリーンになる ==<br />
<br />
GRUB を使っていてレッドスクリーンになる場合は、{{ic|/etc/default/grub}} を編集して {{ic|1=GRUB_TERMINAL_OUTPUT=console}} をアンコメントして GRUB のフレームバッファを無効にしてください。詳しくは [[GRUB/ヒントとテクニック#フレームバッファの無効化]]を参照。<br />
<br />
== Intel 内蔵 GPU が載っている環境で黒画面 ==<br />
<br />
内蔵 GPU が搭載された Intel の CPU を使っていて {{Pkg|nvidia}} パッケージをインストールした場合、仮想ターミナルを変更したり、X セッションを終了したとき、または起動時に黒画面になることがあります。これはグラフィックモジュールの衝突が原因です。Intel の GPU モジュールをブラックリストに入れることで解決されます。{{ic|/etc/modprobe.d/blacklist.conf}} ファイルを作成して起動時に ''i915'' と ''intel_agp'' モジュールがロードされないようにしてください:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|<br />
install i915 /usr/bin/false<br />
install intel_agp /usr/bin/false<br />
}}<br />
<br />
== VIA 内蔵 GPU が載っている環境で黒画面 ==<br />
<br />
上記と同じように、''viafb'' モジュールをブラックリストに入れることで NVIDIA ドライバーとの衝突を解決できます:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|<br />
install viafb /usr/bin/false<br />
}}<br />
<br />
== Intel iGPU で "no screens found" によって X が起動しない ==<br />
<br />
上記と同じように、内蔵 CPU が搭載された Intel の CPU で以下のエラーによって X が起動できない場合:<br />
<br />
[ 76.633] (EE) No devices detected.<br />
[ 76.633] Fatal server error:<br />
[ 76.633] no screens found<br />
<br />
ディスクリートカードの BusID を X の設定に追加してください。BusID を確認するには:<br />
<br />
{{hc|<nowiki># lspci | grep VGA</nowiki>|<br />
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09)<br />
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)<br />
}}<br />
<br />
X の設定ファイル内でカードの Device セクションに追加することで修正できます。例:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/10-nvidia.conf|<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
BusID "PCI:1:0:0"<br />
EndSection<br />
}}<br />
<br />
BusID が {{ic|01:00.0}} だった場合 {{ic|1:0:0}} と指定するので注意してください。<br />
<br />
== Xorg がブート時に失敗し、ブート完了後は起動できる ==<br />
<br />
起動時間がとても短いシステムの場合、NVIDIA ドライバーが完全に初期化される前に systemd がディスプレイマネージャを起動してしまうことがあります。起動時に Xorg が実行された時にだけ、ログに以下のようなメッセージが表示されます:<br />
{{hc|/var/log/Xorg.0.log|output=<br />
[ 1.807] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the<br />
[ 1.807] (EE) NVIDIA(0): system's kernel log for additional error messages and<br />
[ 1.808] (EE) NVIDIA(0): consult the NVIDIA README for details.<br />
[ 1.808] (EE) NVIDIA(0): *** Aborting ***<br />
}}<br />
このような場合、ディスプレイマネージャから DRI デバイスまでの順番付けをする必要があります。まず、新しい [[udev]] ルールファイルを作成して DRI デバイスのデバイスユニットを作成してください:<br />
{{hc|/etc/udev/rules.d/99-systemd-dri-devices.rules|output=<br />
ACTION=="add", KERNEL=="card*", SUBSYSTEM=="drm", TAG+="systemd"<br />
}}<br />
次にディスプレイマネージャからデバイスまでの依存関係を作成します:<br />
{{hc|/etc/systemd/system/display-manager.service.d/10-wait-for-dri-devices.conf|output=<br />
[Unit]<br />
Wants=dev-dri-card0.device<br />
After=dev-dri-card0.device<br />
}}<br />
デスクトップに必要な追加カードが存在する場合は、Wants と After にスペースで区切って記述してください。<br />
<br />
== Flash ビデオプレイヤーがクラッシュする ==<br />
<br />
頻繁に Flash ビデオプレイヤーがクラッシュする場合、ハードウェアアクセラレーションをオフにしてみてください:<br />
<br />
{{hc|/etc/adobe/mms.cfg|2=<br />
EnableLinuxHWVideoDecode=0<br />
}}<br />
<br />
== xrandr BadMatch ==<br />
<br />
[[xrandr]] を使って DELL U2515H のような WQHD モニターを設定しようとしたときに、{{ic|xrandr --addmode}} が {{ic|X Error of failed request: BadMatch}} というエラーを吐く場合、プロプライエタリの NVIDIA ドライバーが HDMI 出力の最大周波数を 225 MHz 以下に制限しているのが原因です。モニターを最大解像度に設定するには [[nouveau]] ドライバーをインストールする必要があります。[[カーネルパラメータ]]で {{ic|1=nouveau.hdmimhz=297}} (あるいは {{ic|330}}) を設定することで強制的に特定のピクセルクロック周波数を使うことができます。<br />
<br />
もしくは、モニターの EDID が誤っている可能性があります。[[#EDID を上書きする]]を参照してください。<br />
<br />
== EDID を上書きする ==<br />
<br />
モニターの EDID 情報が間違っている場合、nvidia ドライバーはとても小さな解像度を設定します。<br />
<br />
手動で xorg の設定に modeline を記述する他に、non-edid モードを使えるように device セクションで edid を無効化する必要があります:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/10-monitor.conf|2=<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
VendorName "Unknown"<br />
ModelName "Unknown"<br />
HorizSync 30-94<br />
VertRefresh 56-76<br />
DisplaySize 518.4 324.0<br />
Option "DPMS"<br />
# 1920x1200 59.95 Hz (CVT 2.30MA-R) hsync: 74.04 kHz; pclk: 154.00 MHz<br />
Modeline "1920x1200R" 154.00 1920 1968 2000 2080 1200 1203 1209 1235 +hsync -vsync<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
Option "UseEdidFreqs" "FALSE"<br />
Option "UseEDID" "FALSE"<br />
Option "ModeValidation" "AllowNonEdidModes"<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Device0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1920x1200R"<br />
EndSubSection<br />
EndSection<br />
}}<br />
<br />
もしくは、モニターの EDID は間違っていなくて、ドライバーがそれを信用できていない可能性もあります。モニターから渡された EDID を強制的に使用するには、X11 Device で {{ic|IgnoreEDIDChecksum}} オプションを有効にしてください。<br />
<br />
{{warning|EDID が本当に間違っている場合、チェックサムを無視するとハードウェアにダメージを与える危険があります。モニターのモードが正しく認識できるという確信がある場合にのみ以下の設定を行ってください (他の OS や他のドライバー、他の出力では問題が起こらない場合など)。}}<br />
<br />
{{bc|Section "Device"<br />
Identifier "Device0"<br />
Driver "nvidia"<br />
Option "IgnoreEDIDChecksum" "''displayName''"<br />
EndSection}}<br />
<br />
{{ic|''displayName''}} はディスプレイデバイスの名前に置き換えてください (例: {{ic|DFP-4}})。ディスプレイデバイスの名前は Xorg のログで確認できます。[[Xrandr]] の出力で確認できる出力の名前 (例: {{ic|DVI-I-0}}) とは違います。<br />
<br />
== nvidia-settings の GUI によるオーバークロックが機能しない ==<br />
<br />
[[NVIDIA/ヒントとテクニック#オーバークロックを有効にする]]に書かれているようにオーバークロックを有効にした後、nvidia-settings の CLI を使って変数を設定することでオーバークロックできます。詳しくは {{ic|man nvidia-settings}} を参照。<br />
<br />
全ての変数を確認するには:<br />
<br />
# nvidia-settings -q all<br />
<br />
PowerMizerMode をパフォーマンスモードに設定するには:<br />
<br />
# nvidia-settings -a [gpu:0]/GPUPowerMizerMode=1<br />
<br />
複数の変数を同時に設定する例:<br />
<br />
# nvidia-setting -a GPUGraphicsClockOffset[3]=50 -a GPUMemoryTransferRateOffset[3]=50 -a GPUOverVoltageOffset=100<br />
<br />
== 画面のティアリングを抑える ==<br />
<br />
以下を実行することで、コンポジタを使っているかどうかに関係なく、ティアリングを完全になくすことができます:<br />
# nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"<br />
ただし、上記の方法は複数の OpenGL アプリケーションでパフォーマンスの劣化が報告されています。<br />
<br />
X11 の設定ファイル (例: {{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}}) の {{ic|"Screen"}} セクションに追加することで設定を永続化できます。その場合、{{ic|TripleBuffering}} を有効化して {{ic|AllowIndirectGLXProtocol}} を無効化する必要があります。設定例:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-nvidia.conf|<nowiki><br />
Section "Screen"<br />
Identifier "Screen0"<br />
Option "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"<br />
Option "AllowIndirectGLXProtocol" "off"<br />
Option "TripleBuffer" "on"<br />
EndSection<br />
</nowiki>}}<br />
<br />
Xorg の設定ファイルが存在しない場合、{{ic|nvidia-xconfig}} を使って作成することができます ([[NVIDIA#自動設定]]を参照)。{{ic|/etc/X11/xorg.conf}} から適当な場所 ({{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}}) に移動してください。<br />
<br />
{{Note|Many of the configuration options produced in {{ic|20-nvidia.conf}} by using {{ic|nvidia-xconfig}} are set automatically by the driver and are not needed. To only use this file for enabling composition pipeline, only the section {{ic|"Screen"}} containing lines with values for {{ic|Identifier}} and {{ic|Option}} are necessary. Other sections may be removed from this file.}}<br />
<br />
{{Tip|Multi monitor setups using different model monitors may have slightly different refresh rates. If vsync is enabled by the driver it will sync to only one of these refresh rates which can cause the appearance of screen tearing on incorrectly synced monitors. Select to sync the display device which is the primarily used monitor as others will not sync properly. This is configurable in {{ic|~/.nvidia-settings-rc}} as {{ic|<nowiki>0/XVideoSyncToDisplayID=</nowiki>}} or by installing {{pkg|nvidia-settings}} and using the graphical configuration options.}}<br />
<br />
=== KDE で画面のティアリングを抑える (KWin) ===<br />
<br />
{{hc|/etc/profile.d/kwin.sh|<nowiki><br />
export __GL_YIELD="USLEEP"<br />
</nowiki>}}<br />
<br />
上記の設定でちらつきが無くならない場合、以下を試してください:<br />
{{hc|/etc/profile.d/kwin.sh|<nowiki><br />
export KWIN_TRIPLE_BUFFER=1<br />
</nowiki>}}<br />
<br />
{{warning|上記の設定を両方同時に使うことはできません。}}<br />
トリプルバッファリングを有効にする場合、ドライバーの設定で {{ic|TripleBuffering}} が有効になっていることを確認してください。<br />
<br />
場合によっては上記の方法では解決しないことがあります。その場合は [[#画面のティアリングを抑える|ForceFullCompositionPipeline]] を設定すると解決することがあります。<br />
<br />
ソース: https://bugs.kde.org/show_bug.cgi?id=322060</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=ASUS_Zenbook_UX31E&diff=18232
ASUS Zenbook UX31E
2020-11-14T08:01:47Z
<p>Hiromi-mi: /* PCIe ASPM */ 表示の崩れを修正。パイプ記号は {{!}} でエスケープ</p>
<hr />
<div>[[Category:ASUS]]<br />
[[en:ASUS Zenbook UX31E]]<br />
このページでは ASUS Zenbook UX31E Ultrabook に Arch Linux をインストール・設定する方法を載せています (兄弟機の UX21E にも適用できるはずです)。<br />
<br />
== インストールの問題 ==<br />
<br />
Arch をインストールする際にパーティションのフォーマットでエラーが表示される場合、以下をカーネルパラメータに追加してみてください:<br />
libata.dma=0<br />
<br />
== 互換性 ==<br />
<br />
=== タッチパッド ===<br />
UX31 には複数のバージョンが存在し、タッチパッドが Sentelic 製だったり Elantec 製だったりします。<br />
<br />
==== Elantec タッチパッド ====<br />
タッチやスクロールは特に設定をしなくても動作します。クリックパッドの機能は使えません (ただし、2本指や3本指のタッチで右・中クリックすることはできます)。<br />
<br />
タッチパッドを強く押さないと認識してくれない場合、以下のプロパティを調整してください [https://linux.die.net/man/4/synaptics]:<br />
synclient FingerLow=5<br />
synclient FingerHigh=15<br />
もしくは {{Ic|/etc/X11/xorg.conf.d/10-synaptics.conf}} を編集してください:<br />
Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "3"<br />
Option "TapButton3" "2"<br />
Option "VertTwoFingerScroll" "1"<br />
Option "HorizTwoFingerScroll" "1"<br />
Option "FingerLow" "5"<br />
Option "FingerHigh" "15"<br />
EndSection<br />
<br />
==== Sentelic タッチパッド ====<br />
<br />
Sentelic 社製タッチパッドのドライバーは 3.2 カーネルで追加されたため、現在では特に設定をしなくても動作します。3.4 からスクロールやマルチタッチ機能がサポートされました (サスペンドから復帰した後にタッチパッドに問題が起こる場合は[[#サスペンド|サスペンド]]を参照)。ただし、2本指のタップや2本指のスクロールは使えないようです [https://bugs.freedesktop.org/show_bug.cgi?id=51403]。使えるようにするには以下のパッチのどちらかを使う必要があります。<br />
<br />
===== ReubenBond =====<br />
<br />
ReubenBond は Sentelic の社員と連絡を取ってデバイスを絶対位置モードにする方法が書かれた公式文書を入手しています。次の URL から見ることができます: http://fsp-lnxdrv.svn.sourceforge.net/viewvc/fsp-lnxdrv/trunk/doc/fsp_packet.txt?revision=43&view=markup<br />
<br />
詳しくはフォーラムの https://bbs.archlinux.org/viewtopic.php?id=125262&p=2 を見てください。<br />
<br />
===== Saaros =====<br />
<br />
[https://github.com/saaros/sentelic Saaros のドライバー] は2本指のタッチとサイドスクロール使うことができ簡単にビルドできます。しかしながら、通常の機能に問題が起こってポインティングが正確でなくなったり、タップに反応しなくなったり、ドラッグや選択がおかしくなったりします。公式カーネルにコードがマージされる可能性があります: https://github.com/saaros/sentelic/issues/2<br />
<br />
=== グラフィック ===<br />
<br />
問題なく動作します。<br />
<br />
==== HDMI 出力 ====<br />
<br />
起動時に HDMI を接続していると画面が切り替わってしまいノートパソコンのディスプレイが表示されないという問題があります。以下の udev ルールとスクリプトを使うことで HDMI の切り替えを自動化することができます:<br />
<br />
{{bc|ACTION&#61;&#61;"change", SUBSYSTEM&#61;&#61;"drm", RUN+&#61;"/usr/sbin/hdmi-plugged"}}{{bc|#!/bin/bash<br />
<br />
export XAUTHORITY&#61;/home/$USER/.Xauthority<br />
export DISPLAY&#61;:0<br />
<br />
/usr/bin/xrandr -display :0 --output eDP1 --auto --output HDMI1 --auto --above eDP1}}<br />
<br />
==== カラープロファイル ====<br />
<br />
Zenbook の色再現度はあまりよろしくありません。[http://www.notebookcheck.net/Asus-Zenbook-UX31E-DH52B-Laptop-Review.65718.0.html Noteboocheck review] に [http://www.notebookcheck.net/uploads/tx_nbc2/UX31.icc UX31E の ICC プロファイル] が存在します。ただし、xcalib を使った場合、緑が強く出すぎるので [http://www.notebookcheck.net/uploads/tx_nbc2/Asus_UX21E_1366x768_glare__P116NWR1_R2_.icc UX21E のプロファイル] を使うほうが良いでしょう。<br />
<br />
=== ネットワーク ===<br />
{{Warning|何らかの理由で UX31E では [[NetworkManager]] が機能しません。[[netctl]] などを使うようにしてください。}}<br />
<br />
==== ワイヤレス ====<br />
カーネルに 2.6.27 から含まれている ath9k ドライバーで問題なく動作します。<br />
<br />
{{Warning|インターネットに接続できなくなって困らないように、Arch Linux をインストールするときに {{Pkg|wireless_tools}} や {{Pkg|wpa_supplicant}} パッケージもインストールすると良いでしょう。}}<br />
<br />
===== NetworkManager を使用した場合に無線が不安定になる =====<br />
<br />
無線を使用した場合に接続が途切れるという報告があります。ワイヤレス接続の BSSID (通常はルーターの MAC アドレス) を設定することで解決する場合があります。ワイヤレス接続で使用するアクセスポイントがひとつだけの場合しか使えません (BSSID はアクセスポイントごとに一意であるため)。<br />
<br />
ath9k ドライバーの ani 機能を無効化することで解決することもあります。以下のコマンドを実行してください:<br />
# echo 1 > /sys/kernel/debug/ieee80211/phy0/ath9k/disable_ani<br />
<br />
==== 有線 - Asix AX88772 USB Ethernet ====<br />
Asix AX887722 USB Ethernet ドライバーはカーネルに含まれているため、特に設定をしなくても動作します。<br />
<br />
=== ソリッドステートドライブ ===<br />
[[ソリッドステートドライブ]]を読んでください。<br />
<br />
== 電源管理 ==<br />
<br />
=== サスペンド ===<br />
USB モジュールをアンロードしないとスリープモードから復帰できなくなります。<br />
<br />
{{ic|/etc/pm/config.d/unload_module}} に以下を記述してください:<br />
SUSPEND_MODULES="xhci_hcd ehci_hcd uhci_hcd"<br />
<br />
Sentelic タッチパッドでマルチタッチを使うためにカーネルにパッチをあてている場合、復帰後にタッチパッドが使えなくなることがあります。その場合、psmouse モジュールをリストに加えてください:<br />
SUSPEND_MODULES="xhci_hcd ehci_hcd uhci_hcd psmouse"<br />
<br />
=== PCIe ASPM ===<br />
以下のように出力される場合:<br />
{{hc|1=dmesg {{!}} grep -i "acpi fadt"|2=ACPI FADT declares the system does not support PCIe ASPM, so disable it.}}<br />
以下のオプションをカーネル行に追加してはいけません:<br />
pcie_aspm=force<br />
<br />
=== i915 ===<br />
<br />
{{ic|i915_enable_rc6}} を有効にすることでバッテリーが長持ちするようになります。以下のオプションを kernel 行に追加してください:<br />
i915.i915_enable_rc6=1<br />
<br />
{{ic|i915}} パラメータの現在の状態を確認するには root で以下を実行:<br />
# for i in /sys/module/i915/parameters/*;do echo ${i}=`cat $i`;done<br />
<br />
モジュールパラメータの情報を表示するには:<br />
# modinfo i915<br />
<br />
=== 省電力設定 ===<br />
[[Laptop Mode Tools]] を設定して [[CPU 周波数スケーリング]]を確認してください。<br />
<br />
== 参照 ==<br />
*https://help.ubuntu.com/community/AsusZenbook<br />
*http://www.lesswatts.org/</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Mod_wsgi&diff=18229
Mod wsgi
2020-11-13T06:29:22Z
<p>Hiromi-mi: en:Apache HTTP Server/mod_wsgi 英語版 615040 に追従</p>
<hr />
<div>{{DISPLAYTITLE:mod_wsgi}}<br />
[[Category:ウェブサーバー]]<br />
[[en:Apache HTTP Server/mod_wsgi]]<br />
[[fr:mod_wsgi]]<br />
== イントロダクション ==<br />
[https://github.com/GrahamDumpleton/mod_wsgi プロジェクトサイト] より:<br />
:''mod_wsgi の目標は Python WSGI インターフェイスに準拠している全ての Python アプリケーションをホストできる、簡単に使える Apache モジュールを実装することです。高いパフォーマンスが要求されるプロダクションウェブサイトだけでなく、ウェブホスティングサービスで動かしている平均的な個人サイトでの使用にもこのモジュールは適しています。''<br />
<br />
mod_wsgi はサーバーの中に [https://www.python.org Python] アプリケーションを埋め込む [[Apache]] モジュールで、[https://www.python.org/dev/peps/pep-0333/ Python PEP 333] で定義されている Python WSGI インターフェイスを使って交信します。WSGI は Python で高品質かつ高性能なウェブアプリケーションを作る方法の一つです。<br />
<br />
WSGI には様々なウェブアプリと簡単に対話するための標準的な仕組みがあります。有名な Python アプリケーションやフレームワークの中には簡単にデプロイ・エンベッドできるように wsgi を提供しているものがあります。例えば、Django によるブログやプロダクションの Trac を単一の Pylons アプリケーションに埋め込んで、わざわざ両方のアプリケーションを修正しなくても、認証を処理できるということです。<br />
<br />
例:<br />
* [http://www.pylonsproject.org/ Pylons]<br />
* [https://www.djangoproject.com/ Django]<br />
* [http://turbogears.org/ Turbo-gear]<br />
* [http://trac.edgewall.org/ Trac]<br />
* [http://moinmo.in/ Moin-moin]<br />
* [http://www.zope.org/ Zope]<br />
<br />
== インストール ==<br />
<br />
{{AUR|mod_wsgi}} をインストールしてください。<br />
<br />
== Apache の設定 ==<br />
<br />
* インストールの中で示されるように、以下の行を Apache の設定ファイルに追加してください:<br />
{{hc|/etc/httpd/conf/httpd.conf|2=<br />
LoadModule wsgi_module modules/mod_wsgi.so<br />
}}<br />
<br />
* Apache を[[再起動]]します。<br />
<br />
* Apache が正しく動作していることを確認してください。先のコマンドが何も返さなかった場合、Apache の起動は上手くいっています。そうでない場合、以下のコマンドでエラーを確認できます:<br />
# systemctl -l status httpd.service<br />
<br />
== モジュールのテスト ==<br />
<br />
* Apache の設定ファイルに以下の行を追加してください:<br />
{{hc|/etc/httpd/conf/httpd.conf|2=<br />
WSGIScriptAlias /wsgi_app /srv/http/wsgi_app.py<br />
}}<br />
<br />
* テストファイルを作成:<br />
{{hc|/srv/http/wsgi_app.py|2=<br />
#-*- coding: utf-8 -*-<br />
def wsgi_app(environ, start_response):<br />
import sys<br />
output = sys.version.encode('utf8')<br />
status = '200 OK'<br />
headers = [('Content-type', 'text/plain'),<br />
('Content-Length', str(len(output)))]<br />
start_response(status, headers)<br />
yield output<br />
<br />
# mod_wsgi need the *application* variable to serve our small app<br />
application = wsgi_app<br />
}}<br />
<br />
* Apache を[[再起動]] します。<br />
* 次のアドレスを開いて正しく機能しているかどうか確認できます: http://localhost/wsgi_app<br />
<br />
== 参照 ==<br />
*[[LAMP]]<br />
*[https://github.com/GrahamDumpleton/mod_wsgi mod_wsgi プロジェクトサイト]<br />
*[https://modwsgi.readthedocs.io/en/develop/user-guides/quick-configuration-guide.html Quick Configuration Guide]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=%E4%BB%96%E3%81%AE%E3%83%87%E3%82%A3%E3%82%B9%E3%83%88%E3%83%AA%E3%83%93%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E4%BD%9C%E6%88%90&diff=18227
他のディストリビューションのパッケージの作成
2020-11-12T15:25:21Z
<p>Hiromi-mi: en:Creating packages for other distributions 英語版 633020 に追従</p>
<hr />
<div>[[Category:パッケージ開発]]<br />
[[en:Creating packages for other distributions]]<br />
[[pt:Creating packages for other distributions]]<br />
{{Related articles start}}<br />
{{Related|パッケージの作成}}<br />
{{Related articles end}}<br />
[[Arch は最高|Arch は最高です]]。しかしながら、時には他のディストリビューションのパッケージを作成したいと思うときもあるでしょう。<br />
<br />
== 一般 ==<br />
<br />
* [[:Category:仮想化|仮想化]]はわかりやすい方法ですが、追加したシステムの管理が必要になります。<br />
* ディストリビューションごとのパッケージングツールを使う。例: {{Aur|dh-make}}, {{Pkg|dpkg}} (Debian), {{Aur|rpm-org}} (Fedora)。あまり複雑ではない作業には [https://tldp.org/HOWTO/html_single/Debian-Binary-Package-Building-HOWTO/ dpkg-deb] などのショートカットが適しているかもしれません。<br />
* [[chroot]] して Arch の中に (別に) ベースシステムを作成する。例: {{Pkg|debootstrap}} (Debian), {{Aur|dnf}} (Fedora)。最小限の、クリーンな環境を作れるという利点があります。<br />
* パッケージングツールによる自動的な方法で chroot を使う。例: {{Aur|pbuilder-ubuntu}} (Debian), {{Aur|mock}} (Fedora)。<br />
* (互換性を失う可能性がある) 依存関係を処理する別の方法として [http://jurjenbokma.com/ApprenticesNotes/getting_statlinked_binaries_on_debian.xhtml 静的リンク]。ほとんどのディストリビューションはこの方法を認めてないので注意してください。<br />
* 使用するディストリビューションに関係なく一般的な原則は適用されます。例えば、[https://bbs.archlinux.org/viewtopic.php?id=67561 パッケージを root でビルドしてはいけません]。<br />
<br />
== Debian ==<br />
<br />
[https://www.debian.org/doc/manuals/packaging-tutorial/packaging-tutorial.ja.pdf Debian パッケージングチュートリアル]に基本的なことが説明されています。チュートリアルでは以下のツールの利用について記述しています:<br />
<br />
* {{App|cowdancer|pbuilder の copy-on-write ラッパー|https://packages.debian.org/sid/cowdancer|{{Aur|cowdancer}}}}<br />
* {{App|debootstrap|dpkg や apt が利用できない環境でも、スクラッチから Debian ベースシステムを作成するためのツール。|https://packages.debian.org/sid/debootstrap|{{Pkg|debootstrap}}}}<br />
* {{App|devscripts|Debian パッケージメンテナの生活を楽にするスクリプト|https://packages.debian.org/sid/devscripts|{{Aur|devscripts}}}}<br />
* {{App|dh-autoreconf|autoreconf を実行してビルド後に片付けを行う Debhelper アドオン|https://packages.debian.org/sid/dh-autoreconf|{{Aur|dh-autoreconf}}}}<br />
* {{App|dh-make|ソースアーカイブを Debian パッケージソースに変換するツール|https://packages.debian.org/sid/dh-make|{{Aur|dh-make}}}}<br />
* {{App|[[Wikipedia:ja:dpkg|dpkg]]|Debian パッケージマネージャ|https://packages.debian.org/sid/dpkg|{{Pkg|dpkg}}}}<br />
* {{App|dput|Debian パッケージのアップロードツール|https://packages.debian.org/sid/dput|{{Aur|dput}}}}<br />
* {{App|equivs|Debian パッケージの依存関係を回避するツール|https://launchpad.net/ubuntu/+source/equivs|{{Aur|equivs}}}}* <br />
* {{App|git-buildpackage|Git によるパッケージビルドシステムを統合する Debian のツール|https://honk.sigxcpu.org/piki/projects/git-buildpackage/|{{Aur|git-buildpackage}}}}<br />
* {{App|pbuilder-ubuntu|Debian パッケージを作成するための Chroot 環境|https://launchpad.net/ubuntu/+source/pbuilder|{{Aur|pbuilder-ubuntu}}}}<br />
* {{App|[[Wikipedia:Quilt (software)|quilt]]|パッチによる変更を記録して一連のパッチを管理する|https://savannah.nongnu.org/projects/quilt|{{Pkg|quilt}}}}<br />
<br />
{{Note|存在しないツール: ''lintian'', ''reprepo'', ''cdbs'', ''svn-buildpackage'', ''javahelper''}}<br />
<br />
=== ヒントとテクニック ===<br />
<br />
==== 依存関係の処理を無視する ====<br />
<br />
''dpkg'' は [[pacman]] によってインストールされた依存関係を認識しません。そのため {{ic|dpkg-buildpackage}} は以下のようなエラーで失敗することになります:<br />
<br />
dpkg-checkbuilddeps: Unmet build dependencies: build-essential:native debhelper (>= 8.0.0)<br />
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting<br />
<br />
これを無視するには、-d フラグを使って下さい:<br />
<br />
$ dpkg-buildpackage -d -us -uc<br />
<br />
また、以下の行を {{ic|debian/rules}} に追加して {{ic|dh_shlibdeps}} を上書きする必要もあります:<br />
<br />
override_dh_shlibdeps:<br />
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info<br />
<br />
{{Note|実行時の依存関係 (とバージョン番号の一致) を {{ic|debian/control}} に手動で追加してください。{{ic|<nowiki>${shlibs:Depends}</nowiki>}} はもはや意味を持ちません。}}<br />
<br />
{{Warning|たとえこの方法でパッケージをビルドできたとしても、動かなくなってしまうことがないように (chroot などの) クリーンな環境でビルドを行うことを強く推奨します。}}<br />
<br />
==== chroot をセットアップ ====<br />
<br />
''pbuilder-ubuntu'' のイントロダクションとして [https://wiki.ubuntu.com/PbuilderHowto Pbuilder How-To] を見て下さい。[[Wikipedia:ja:コピーオンライト|copy-on-write]] による著しいパフォーマンスの向上がある ''cowdancer'' を合わせて使うことが推奨されています。<br />
<br />
* [[AUR]] の {{Pkg|debian-archive-keyring}}, {{Pkg|ubuntu-keyring}}, {{Aur|gnupg1}} が必要です。<br />
* ''eatmydata'' は {{Pkg|libeatmydata}} や {{Aur|lib32-eatmydata}} で入手できます。{{ic|LD_PRELOAD}} エラーが起こらないように、chroot の中と外両方でインストールする必要があります。Arch と Debian ではパスが異なっているため、以下のシンボリックリンクを作成してください:<br />
# ln -s /usr/lib/libeatmydata.so.1.1.1 /usr/lib/libeatmydata/libeatmydata.so<br />
# ln -s /usr/lib/libeatmydata.so.1.1.1 /usr/lib/libeatmydata/libeatmydata.so.1<br />
* [https://gist.githubusercontent.com/AladW/71352540eca7de2197c7/raw/c28f6d96c0beb116f99e1ff0bd16599c356855ed/gistfile1.sh サンプル pbuilderrc]<br />
* pbuilder で処理するソースパッケージを作成するには:<br />
$ dpkg-buildpackage -d -us -uc -S<br />
<br />
=== 参照 ===<br />
<br />
* [https://www.debian.or.jp/community/devel/debian-policy-ja/policy.ja.html/ Debian ポリシー]<br />
* [https://www.debian.org/doc/manuals/maint-guide/index.ja.html 新メンテナーガイド]<br />
* [http://raphaelhertzog.com/2012/08/08/how-to-use-quilt-to-manage-patches-in-debian-packages/ Quilt in Debian packaging]<br />
<br />
== Fedora ==<br />
<br />
[https://fedoraproject.org/wiki/How_to_create_an_RPM_package How to create an RPM package]<br />
<br />
* {{App|rpm-tools|RPM.org のフォーク、主要な RPM ディストロで使用されています|http://www.rpm.org/|{{Pkg|rpm-tools}}}}<br />
* {{App|mock|ソース RPM を取得して chroot で RPM をビルド|https://github.com/rpm-software-management/mock/wiki|{{Aur|mock}}}}<br />
<br />
=== 参照 ===<br />
<br />
*[https://copr.fedoraproject.org/ Copr]<br />
<br />
== openSUSE ==<br />
<br />
[http://openbuildservice.org/ Open Build Service] は自動的な、一貫した、再現性のある方法でソースからパッケージを作成・配布するための総合システムです。.deb, .rpm そして Arch パッケージをサポートしています。<br />
<br />
=== OBS と OSC で Arch パッケージを作成 ===<br />
<br />
{{Note|ビルドするには、PKGBUILD ファイルだけでなくソースファイルもアップロードする必要があります (OBS にアップロードするか OBS からファイルをダウンロードさせるかのどちらか)。OBS はネットワークに対応していない仮想マシンを使っているため、ファイルをダウンロードすることはできません。}}<br />
<br />
==== パッケージの作成 ====<br />
<br />
# [https://build.opensuse.org/] でアカウントを作成。<br />
# {{AUR|osc}} パッケージを[[インストール]]。上流のドキュメントは [https://en.opensuse.org/openSUSE:OSC こちら]。<br />
# サンプルプロジェクト {{ic|home:foo}} を作成。<br />
# サンプルサブプロジェクト {{ic|home:foo:bar}} を作成 (任意、ただし推奨)。<br />
# {{ic|osc meta pkg -e home:foo:bar ham}} で新しいサンプルパッケージ {{ic|ham}} を作成。作成された XML ファイルを保存して終了。<br />
# 新しい作業ディレクトリに切り替えてから作成したプロジェクトをチェックアウト: {{ic|osc co home:foo:bar/ham}}。<br />
# 次のディレクトリに cd: {{ic|cd home:foo:bar/ham}}。<br />
<br />
==== パッケージの管理 ====<br />
<br />
プロジェクトを管理する方法を決めて下さい。2つの方法が存在します:<br />
<br />
# PKGBUILD とヘルパーファイル (*.install スクリプトなど) をバージョン管理システム (git や hg など) で管理して OBS にそれを追跡させる。<br />
# OBS だけでパッケージを全て管理する。<br />
<br />
前者の方法のほうが柔軟性があり動的です。設定するには:<br />
<br />
* プロジェクトディレクトリから、以下の内容の {{ic|_service}} ファイルを作成してください:<br />
<br />
{{bc|<nowiki><services><br />
<service name="tar_scm"><br />
<param name="scm">git</param><br />
<param name="url">git://<your_repo_here></param><br />
<param name="versionformat">git%cd~%h</param><br />
<param name="versionprefix"><your_version_here></param><br />
<param name="filename"><name_of_your_package></param><br />
</service><br />
<service name="recompress"><br />
<param name="file">*.tar</param><br />
<param name="compression">xz</param><br />
</service><br />
<service name="set_version"/><br />
</services></nowiki>}}<br />
<br />
{{AUR|gimp-git}} の例:<br />
<br />
{{bc|<nowiki><services><br />
<service name="tar_scm"><br />
<param name="scm">git</param><br />
<param name="url">git://git.gnome.org/gimp.git</param><br />
<param name="versionformat">git%cd~%h</param><br />
<param name="versionprefix">2.9.1</param><br />
<param name="filename">gimp-git</param><br />
</service><br />
<service name="recompress"><br />
<param name="file">*.tar</param><br />
<param name="compression">xz</param><br />
</service><br />
<service name="set_version"/><br />
</services></nowiki>}}<br />
<br />
* OBS に追跡させます: {{ic|osc add _service}}<br />
* リポジトリに含めたい他のファイルが存在する場合、同じように追加してください: プロジェクトディレクトリにファイルを追加して、OBS にファイルを追跡させてください (OBS は基幹の SCM として subversion を使っているため、手順は簡単です)。<br />
* ファイルをリポジトリにチェックイン (アップロード): {{ic|osc ci -m "commit message (e.g. bumped package xxx to version yyy"}}。<br />
<br />
しばらくすると、OBS はパッケージのビルドを開始します。<br />
<br />
==== ヒントとテクニック ====<br />
<br />
* パッケージのビルドの進捗を確認するには、作業ディレクトリに cd してから次を実行: {{ic|osc results}}。<br />
* Arch:Core と Arch:Extra および Arch:Community リポジトリが存在します。[community] can be appended as a "repository path" after adding the main Arch repository to the project.<br />
<br />
==== ca-certificates-utils パッケージの問題 ====<br />
<br />
OBS のビルドが ca-certificates-utils パッケージのせいで失敗する場合、プロジェクトの設定に以下の行を追加してください (プロジェクトのページから、Advanced -> Project Config を開く):<br />
Prefer: ca-certificates-utils ca-certificates<br />
<br />
=== 参照 ===<br />
<br />
* 使用例: [https://build.opensuse.org/package/show/home:metakcahura/cpu-x-git arch-cpu-x-git]<br />
* [https://en.opensuse.org/openSUSE:Packaging_guidelines openSUSE packaging guidelines]<br />
* [https://en.opensuse.org/Portal:Packaging Portal:Packaging from openSUSE wiki]<br />
<br />
== 参照 ==<br />
<br />
* [https://bbs.archlinux.org/viewtopic.php?id=175409 BBS - PKGBUILD equivalents for other distros]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=182198 BBS - Original discussion]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Nitrogen&diff=18212
Nitrogen
2020-11-11T13:41:05Z
<p>Hiromi-mi: 英語版 614368 に追従</p>
<hr />
<div>[[Category:グラフィックとデスクトップパブリッシング]]<br />
[[Category:視覚効果]]<br />
[[Category:ラスタ画像]]<br />
[[en:Nitrogen]]<br />
[[es:Nitrogen]]<br />
[[ru:Nitrogen]]<br />
[[zh-hans:Nitrogen]]<br />
{{Related articles start}}<br />
{{Related|feh}}<br />
{{Related articles end}}<br />
[https://github.com/l3ib/nitrogen/ Nitrogen] は X ウィンドウ向けの高速で軽量なデスクトップ壁紙ブラウザ・設定プログラムです。<br />
<br />
== インストール ==<br />
<br />
Nitrogen は[[公式リポジトリ]]の {{Pkg|nitrogen}} パッケージで[[インストール]]できます。<br />
<br />
== 使用方法 ==<br />
<br />
詳しい説明は {{ic|nitrogen --help}} を見て下さい。以下は初歩的な例です:<br />
<br />
=== 壁紙の設定 ===<br />
<br />
特定のディレクトリから再帰的に壁紙を表示・設定するには、次を実行:<br />
<br />
$ nitrogen /path/to/image/directory/<br />
<br />
特定のディレクトリから再帰せずに壁紙を表示・設定するには、次を実行:<br />
<br />
$ nitrogen --no-recurse /path/to/image/directory/<br />
<br />
=== 壁紙のリストア ===<br />
<br />
後のセッションで選択した壁紙をリストアするには、スタートアップファイル ([[Xinitrc]] や [[Openbox#autostart]] など) に以下を追加してください:<br />
<br />
nitrogen --restore &<br />
<br />
== トラブルシューティング ==<br />
<br />
=== デュアルモニタでフリーズする ===<br />
<br />
nitrogen の現在の設定を削除してください: [https://bbs.archlinux.org/viewtopic.php?id=46245]<br />
<br />
$ rm -r ~/.config/nitrogen/</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Hiromi-mi&diff=18211
利用者:Hiromi-mi
2020-11-11T13:34:37Z
<p>Hiromi-mi: AUR/Pkg 切替Bot が必要か?</p>
<hr />
<div>リンク切れや誤字脱字の修正を中心に、時々古い情報の更新をしています。<br />
<br />
* サイト: https://hiromi-mi.github.io/<br />
* GitHub: https://github.com/hiromi-mi/<br />
<br />
何かありましたら、議論ページまでお願いします。<br />
<br />
=== 同期する記事 ===<br />
追いつかずじまいですが...<br />
* [[Lenovo ThinkPad T450s]]<br />
* [[Lenovo ThinkPad T570]]<br />
* [[Lenovo ThinkPad X1 Carbon (Gen 5)]]<br />
<br />
* [[Lenovo ThinkPad X1 Carbon (Gen 6)]]<br />
* [[Sway]]<br />
* [[Pacman ヒント]]<br />
* [[Rust]]<br />
* [[Wayland]]<br />
<br />
=== 考慮すべき事項 ===<br />
* <s>言語間リンクの行き先が en:ArchWiki:Archive となっている記事は、編集の際ついでに言語間リンクを削除してよいか?</s> [[ThinkPad OSD]] など 消すことにする<br />
* <s>[[Lenovo ThinkPad P50]] など個人的内容が中心の項をどのように明瞭化して翻訳するか?あるいは翻訳しないか?</s> 翻訳しない<br />
* <s>メンテナ権限ではページ削除ができないためカテゴリのアーカイブができない</s> [[利用者:Ny-a]] さん側で対応された模様。ありがとうございます<br />
* [[Ripcord]] などライセンス違反 (の可能性が高い) ソフトウエアをそのまま訳すか?英語版にない注意喚起を付けて訳すか?訳さないか?すでにあれば消すか?<br />
* AUR と Package 間の移動を自動的に追跡できないか?<br />
=== 編集傾向 ===<br />
[[利用者:hiromi-mi]] の手では英語版の翻訳は難しい状況であり、英語版の文章構成等の変更には追従できていません。<br />
<br />
プログラムの仕様変更など、読者に影響の大きな部分を優先して更新していく予定です。</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Sway&diff=18195
Sway
2020-11-09T09:26:25Z
<p>Hiromi-mi: /* 現状 */ NVIDIA 未対応に対する注意を追加</p>
<hr />
<div>[[Category:タイル型ウィンドウマネージャ]]<br />
[[Category:動的ウィンドウマネージャ]]<br />
[[en:Sway]]<br />
''sway'' (SirCmpwn's Wayland window manager) は [[i3]] と互換性のある [[Wayland]] コンポジタを作成しようという試みです。[http://swaywm.org 公式ウェブサイト] より:<br />
:Sway は Wayland において Xorg の i3 ウィンドウマネージャの代わりとなるウィンドウマネージャです。既存の i3 設定で動作し i3 の機能のほとんどをサポートしています。<br />
<br />
== 現状 ==<br />
[https://github.com/swaywm/sway/releases/tag/1.0 Release sway 1.0] にあるように、Sway は基本的に100% i3 と互換です。実装された機能と、実装されていない機能については以下のリンクを参照してください:<br />
*[https://github.com/SirCmpwn/sway/issues/2#issue-99897933 i3 の機能のサポート]<br />
*[https://github.com/SirCmpwn/sway/issues/98 IPC 機能のサポート]<br />
*[https://github.com/SirCmpwn/sway/issues/343 i3bar の互換性]<br />
*[https://github.com/SirCmpwn/sway/issues/307 Airblader のフォークの機能]<br />
<br />
また、[[NVIDIA]] などの不自由なグラフィックドライバーはサポートされておらず、今後ともサポートされません。[[Nouveau]] などを利用してください[https://github.com/swaywm/sway/wiki#nvidia-users]。<br />
<br />
== インストール ==<br />
<br />
''sway'' は {{Pkg|sway}} パッケージで[[インストール]]できます。最新の開発版は {{AUR|wlroots-git}} と {{AUR|sway-git}} でインストールできます。''sway'' は ''wlroots'' に緻密に依存しているので、''sway'' 更新時には ''wlroots'' も更新するのが望ましいです。<br />
<br />
また、画面をロックする {{Pkg|swaylock}} や、アイドル時間管理デーモンの {{Pkg|swayidle}} もインストールできます。<br />
<br />
デフォルトのアプリケーションランチャーは {{Pkg|dmenu}} であり、ターミナルエミュレータは {{Pkg|alacritty}} です。インストールするか、あるいは設定ファイルで別のアプリケーションに変更するかを、初回起動の前に行なうことが望ましいです。<br />
<br />
== sway の起動 ==<br />
<br />
{{Tip|ウィンドウ装飾ライブラリなど設定する必要がある環境変数については [[Wayland#GUI ライブラリ]]を参照。}}<br />
<br />
=== ターミナルから ===<br />
ターミナルに {{ic|sway}} と入力すれば sway が起動します。<br />
<br />
=== ディスプレイマネージャを使う ===<br />
{{Note|Sway は公式にはディスプレイマネージャをサポートしていません。}}<br />
sway のセッションは {{ic|/usr/share/wayland-sessions/sway.desktop}} にあります。[[GDM]] や [[SDDM]] などのディスプレイマネージャは自動的にセッションを認識します。<br />
<br />
あるいは、テキストベースのセッションマネージャを使うこともできます。[[ディスプレイマネージャ#コンソール]]を参照してください。<br />
<br />
== 設定 ==<br />
i3 を既に使っている場合、i3 の設定を {{ic|~/.config/sway/config}} にコピーすればそのまま動作します。i3 を使ったことがない場合は、サンプル設定ファイルを {{ic|~/.config/sway/config}} にコピーしてください。サンプル設定ファイルは {{ic|/etc/sway/config}} にあります。ただし {{ic|DFALLBACK_CONFIG_DIR}} フラグが設定されている場合は存在しません。設定方法は {{man|5|sway}} を見てください。<br />
<br />
=== キーマップ ===<br />
デフォルトでは、sway は US QWERTY キーマップで起動します。キーマップを書き換えるには:<br />
{{hc|~/.config/sway/config|<br />
input * {<br />
xkb_layout "us,de,ru"<br />
xkb_variant "colemak,,typewriter"<br />
xkb_options "grp:win_space_toggle"<br />
}<br />
<br />
input <identifier> xkb_model "pc101"<br />
}}<br />
<br />
なお、Sway は起動時に {{ic|XKB_DEFAULT_LAYOUT}} や {{ic|XKB_DEFAULT_VARIANT}} などの[[環境変数]]を読み込みますが、環境変数よりも設定ファイルの内容が優先されます。<br />
<br />
詳細は {{man|5|sway-input}} および {{man|7|xkeyboard-config}} を参照してください。<br />
<br />
=== キーのオートリピート設定 ===<br />
Typematic Delay (オートリピート開始までの時間) と Typematic Rate (1秒間のリピート回数) は、{{ic|input}} セクションに以下の行を加えると変更できます。設定項目について詳しくは[[コンソールでのキーボード設定#typematic delay と rate の調整]]を参照してください。<br />
<br />
{{hc|~/.config/sway/config|<br />
input <identifier> repeat_delay 300<br />
input <identifier> repeat_rate 30<br />
}}<br />
<br />
=== ステータスバー ===<br />
ステータスバーを表示したいときは {{Pkg|i3status}} プログラムをインストールするのが簡単です。sway の設定の末尾に以下のスニペットを追加するだけで表示できます:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bar {<br />
status_command i3status<br />
}</nowiki>}}<br />
i3status をカラー出力させたい場合、i3status の設定の以下の部分を調整してください:<br />
{{hc|~/.config/i3status/config|<nowiki><br />
general {<br />
colors = true<br />
interval = 5<br />
}<br />
</nowiki>}}<br />
どちらの例でも、システム全体にインストールされた設定ファイルはユーザーディレクトリにコピーされるので、それを修正してください。<br />
<br />
=== 壁紙 ===<br />
Sway 1.1 以降、壁紙機能は {{Pkg|swaybg}} に分割され、{{ic|output}} コマンドを動作させるのに必要です。<br />
<br />
以下の行を sway の設定の最後に追加することで、全ての画面 ({{ic|"*"}} という名前にマッチする画面) で背景画像を設定できます:<br />
{{hc|~/.config/sway/config|<nowiki><br />
output "*" background /path/to/image.jpg fill<br />
</nowiki>}}<br />
ファイルの名前やパスは適当に置き換えて下さい。<br />
<br />
また、背景は単一色にもできます:<br />
{{bc|output * bg #000000 solid_color}}<br />
<br />
{{Note|{{Pkg|swaybg}} コマンドの GTK3 フロントエンドに {{AUR|azote}} があります。}}<br />
<br />
=== 入力デバイス ===<br />
特定の入力デバイスの設定を調整することができます。例えば、タッチパッドの tap-to-click とナチュナルスクロールを有効にするには、以下の input ブロックを追加:<br />
{{hc|~/.config/sway/config|<nowiki><br />
input "2:14:ETPS/2_Elantech_Touchpad" {<br />
tap enabled<br />
natural_scroll enabled<br />
}<br />
</nowiki>}}<br />
デバイスの識別子は以下のコマンドで確認できます:<br />
$ swaymsg -t get_inputs<br />
上記のコマンドの出力には、"/" などの記号をエスケープするために "\" が付いていることがあります (例: {{ic|"2:14:ETPS\/2_Elantech_Touchpad"}})。設定に追加するときはエスケープを取り除いてください。<br />
<br />
アクセラレーションなど他のオプションについては {{man|5|sway-input}} で詳細を確認できます。<br />
<br />
=== HiDPI ===<br />
<br />
設定ファイルの {{ic|output}} コマンドでディスプレイのスケールファクタを設定してください。スケールファクタは小数でも指定できます。HiDPI ディスプレイの場合は 2 などに設定してください。<br />
output <name> scale <factor><br />
ディスプレイの名前は以下のコマンドで確認できます:<br />
$ swaymsg -t get_outputs<br />
<br />
=== カスタムキーバインド ===<br />
キーボードの[[特別なキーボードキー|特殊なキー]]を使ってコマンドを実行することができます。例えば、ボリュームや画面の明るさを制御するには:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') +5%<br />
bindsym XF86AudioLowerVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') -5%<br />
bindsym XF86AudioMute exec pactl set-sink-mute $(pacmd list-sinks |awk '/* index:/{print $3}') toggle<br />
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-<br />
bindsym XF86MonBrightnessUp exec brightnessctl set +5%<br />
</nowiki>}}<br />
<br />
{{Pkg|brightnessctl}} を使うことで輝度を制御できます。輝度や色補正を制御するユーティリティについては[[バックライト]]を見てください。<br />
<br />
=== .Xresources ===<br />
<br />
sway で使用するには {{ic|.Xresources}} を {{ic|.Xdefaults}} にコピーしてください。<br />
<br />
=== XWayland ===<br />
"cannot open display" というエラーでプログラムが起動しない場合、X上で動作するプログラムであることが考えられます。XWayland 互換レイヤーを使うと Wayland 上で動作させられます。{{Pkg|xorg-server-wayland}} パッケージをインストールしてください。<br />
<br />
一方、XWayland を無効化し、Sway の純粋な Wayland セッションを使うには次のようにします:<br />
{{hc|~/.config/sway/config|<br />
xwayland disable<br />
}}<br />
{{Note|アプリケーションによっては[[Wayland#GUI ライブラリ|設定]]が Wayland ネイティブで動作させることが必要な場合や、大抵のプロプライエタリなアプリケーションなどでは全く Wayland に対応していないことがあります。今のところそのようなアプリケーションが使えるように XWayland は無効化しないことが推奨されます。}}<br />
<br />
== ヒントとテクニック ==<br />
<br />
=== ログイン時に自動起動 ===<br />
<br />
tty1 にログインしたときに起動するには、以下を {{ic|.bash_profile}} に追加してください:<br />
<br />
<nowiki>if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then<br />
exec sway<br />
fi</nowiki><br />
<br />
=== CapsLock/NumLock の有効化 ===<br />
<br />
CapsLock や NumLock を有効にするには:<br />
{{hc|~/.config/sway/config|<br />
input * xkb_capslock enable<br />
input * xkb_numlock enable<br />
}}<br />
<br />
=== dmenu 代替 ===<br />
<br />
[[dmenu]] は XWayland 上で動作するため、フォーカスが他のところへ移るとアプリケーションは反応しなくなります。反応しなくなった dmenu を元に戻すには sway を再起動する必要があります。[[rofi]] を使用するという案もありますが、rofi をメニューとして使用するには、urxvt など wayland ネイティブではない仮想端末から起動しなくてはなりません。Sway でメニューとして起動してもメニューにフォーカスが移りません (rofi にマウスを載せないと入力が通りません)。詳しくは https://github.com/swaywm/sway/issues/1367#issuecomment-332910152 を参照。<br />
<br />
=== カーソルテーマとカーソルの大きさ ===<br />
[[カーソルテーマ]] やカーソルの大きさを変更するには:<br />
<br />
{{hc|~/.config/sway/config|<br />
seat seat0 xcursor_theme ''my_cursor_theme'' ''my_cursor_size''<br />
}}<br />
<br />
{{ic|''my_cursor_theme''}} は {{ic|Default}}, {{ic|Adwaita}}, {{ic|Simple-and-Soft}} などに置きかえ、{{ic|''my_cursor_size''}} は {{ic|48}} などに置きかえます。<br />
変更を反映させるにはアプリケーションを再起動してください。<br />
さらなる詳細は[[カーソルテーマ]]と {{man|5|sway-input}} を参照。<br />
<br />
{{Note|Wayland ではクライアント側でカーソルテーマが決定されます。アプリケーションが{{ic|$XCURSOR_SIZE}}, {{ic|$XCURSOR_THEME}} 環境変数を参照しないこともありえます。}}<br />
<br />
== 既知の問題 ==<br />
<br />
=== 仮想環境で使う ===<br />
<br />
Sway は [[VirtualBox]] や [[VMware]] ESXi 上でも動作するものの、場合によっては設定が必要です。<br />
<br />
==== Sway を tty から起動できない ====<br />
<br />
3D アクセラレーションを有効にする必要があります。[[VMware#Intel と Optimus で 3D グラフィックを有効化]] を参照してください。<br />
<br />
==== マウスカーソルが表示されない ====<br />
<br />
VMSVGA グラフィックコントローラーを使うとカーソルが表示されません。Sway 起動時に {{ic|WLR_NO_HARDWARE_CURSORS}} 変数を設定すると解決します。詳細は [https://github.com/swaywm/sway/issues/3814] を参照してください。<br />
<br />
=== Sway Socket Not Detected ===<br />
<br />
ターミナルマルチプレクサ (例: GNU Screen や tmux) の中で {{ic|swaymsg -t get_outputs}} などのように {{ic|swaymsg}} を使ったときに、以下のようなメッセージが返ってくることがあります:<br />
sway socket not detected.<br />
ERROR: Unable to connect to<br />
これは {{ic|swaymsg}} が {{ic|SWAYSOCK}} のソケットに接続できないことを意味しています。<br />
<br />
{{ic|SWAYSOCK}} の現在の値を確認するには:<br />
$ env | fgrep SWAYSOCK<br />
SWAYSOCK=/run/user/1000/sway-ipc.1000.4981.sock<br />
<br />
最初の sway ソケットにアタッチしてみて、コマンドを再実行してみてください:<br />
$ export SWAYSOCK=$(ls /run/user/*/sway-ipc.*.sock | head -n 1)<br />
<br />
上記のエラーを解決するには、マルチプレクサの外でコマンドを実行する必要があります。<br />
<br />
=== Unable to retrieve socket path ===<br />
<br />
tty から {{ic|swaymsg -t}} を実行すると、<br />
Unable to retrieve socket path<br />
というメッセージが表示されます。これは {{ic|SWAYLOCK}} 環境変数が Sway 起動後に設定されるためで、{{ic|swaymsg}} は Sway 内のターミナルで実行してください。<br />
<br />
=== ディスプレイの解像度が正しくない ===<br />
<br />
{{ic|output "HDMI-A-1" res 1280x1024}} などの設定オプションで解像度が正しく設定できない場合があります。解像度の設定は {{Pkg|wlc}} コンポジタが受け持っており、TTY からディスプレイの解像度を認識します。<br />
<br />
{{ic|1=video=HDMI-A-1:1280x1024:e}} などのカーネルパラメータを指定したりカスタム EDID バイナリ ([[Kernel Mode Setting]] を参照) を使用することで TTY の解像度を変えられる場合があります (WLC や Sway の解像度も変わります)。<br />
<br />
== 参照 ==<br />
<br />
* [https://github.com/SirCmpwn/sway Github プロジェクト]<br />
* [http://swaywm.org ウェブサイト]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Rust&diff=18183
Rust
2020-11-08T04:09:02Z
<p>Hiromi-mi: /* sccache */ en:Rust 版 637571 に追従</p>
<hr />
<div>[[Category:プログラミング言語]]<br />
[[en:Rust]]<br />
[[ru:Rust]]<br />
[http://rust-lang.org/ Rust] は驚異的に高速で、セグメンテーション違反を滅多に起こさず、スレッドとメモリの安全性が保証された、システムプログラミング言語です。<br />
<br />
== ライブラリ ==<br />
<br />
=== Rust コアライブラリ ===<br />
<br />
[https://doc.rust-lang.org/core/ Rust Core Library] は何にも依存しない Rust 標準ライブラリの基礎となるライブラリです。LLVM と直接通じることで、ハードウェアに囚われないプラットフォームとして Rust を使うことができます。LLVM との緊密な統合により、Clang でコンパイルされた C アプリケーションよりも高い性能を発揮することができ、libcore で設計された Rust ソフトウェアは C よりも低レイヤーを扱うことができます。組み込み環境向けのソフトウェアを開発している場合、{{ic|#![no_std]}} で標準ライブラリを省くことでコアライブラリだけを使うことができ、バイナリサイズを小さく、高い性能を発揮させることが可能です。ただし、{{ic|#![no_std]}} を使用すると Rust コミュニティから取得することができる膨大なソフトウェアに制限がかかるため、大抵のライブラリは標準ライブラリを必要としています。<br />
<br />
=== Rust 標準ライブラリ ===<br />
<br />
[http://doc.rust-lang.org/std/index.html Rust Standard Library] は移植性の高い Rust ソフトウェアによって構成された便利な高水準の抽象ライブラリです。{{ic|Vec}}, {{ic|Iterator}}, {{ic|Option}}, {{ic|Result}}, {{ic|String}} 型や、基本的なメソッド、大量の標準マクロ、I/O やマルチスレッドのサポート、{{ic|Box}} によるヒープメモリ確保などの便利な機能、その他、コアライブラリに存在しない高度な機能が多数存在します。<br />
<br />
=== リリースサイクル ===<br />
<br />
Rust は Firefox のリリースサイクルと同じように6週間ごとに定期的にリリースされます。新しいリリースが出るたびに、コアライブラリや標準ライブラリは改善され、対応プラットフォームが新しく増えたりパフォーマンスが向上したり、あるいは新しい機能の安定化が行われます。<br />
<br />
== インストール ==<br />
<br />
=== ネイティブのインストール方法 ===<br />
<br />
Rust の最新安定版を[[インストール]]するには、{{Pkg|rust}} パッケージを[[インストール]]してください。{{ic|rustc}} コンパイラと [[Cargo]] がインストールされます。<br />
<br />
Rust コンパイラの開発版は [[AUR]] からインストールできます。ビルド済みの汎用バイナリは {{AUR|rust-nightly-bin}} を、システムライブラリが付属するコンパイラのビルドは {{AUR|rust-git}} を使ってください。[[非公式ユーザーリポジトリ#rust-git|非公式リポジトリ]]を使うことで定期的に更新されるビルド済みの rust-git パッケージを入手することもできます。<br />
<br />
=== Rustup によるインストール方法 ===<br />
<br />
Rust でソフトウェアを開発するときに、公式に推奨されている Rust のインストール方法は [https://www.rustup.rs/ Rustup ツールチェインマネージャ] を使用する方法です (Rustup は Rust で書かれています)。<br />
<br />
ソフトウェアリポジトリに存在するスタンドアロンな Rust を使用しないで、Rustup ツールチェインマネージャを使用する利点として、複数のプラットフォーム (Windows, Mac, Android) やアーキテクチャ (x86, x86_64, arm) 用に複数のツールチェイン (stable, beta, nightly) をインストールすることができる点が挙げられます。<br />
<br />
==== 上流のインストールスクリプト ====<br />
<br />
{{ic|curl -f <nowiki>https://sh.rustup.rs</nowiki> > rust.sh}} としてファイルをダウンロードします。そのあと、{{ic|less ./rust.sh}} でファイルの内容を確認した上で、{{ic|./rust.sh}} でスクリプトを実行してください。スクリプトはログインシェルの[[Bash#実行|設定ファイル]]の PATH のみ変更します。一度ログアウトしてからログインしなおすか {{ic|source $HOME/.cargo/env}} を実行する必要があります。rustup をアップデート {{ic|rustup self update}} を実行するだけです。<br />
<br />
{{Warning|[https://rustup.rs/ Rustup] のドキュメントに書かれている、{{ic|curl ''some-url'' | sh}} を実行するのは、セキュリティ上のリスクがあると考えられます。ダウンロード中に壊れさえするかもしれない、未知のソースコードを実行するからです。従って、実行する前に、手動でダウンロードし内容を確認することが推奨されます。}}<br />
<br />
{{Note|{{ic|rustup}} コマンドを実行する前に PATH に {{ic|$HOME/.cargo/bin}} を追加してください。}}<br />
<br />
==== Arch Linux パッケージ ====<br />
<br />
{{Pkg|rustup}} は[[公式リポジトリ]]からインストールすることもできます。公式リポジトリからインストールした場合 {{ic|rustup self update}} は使用できないので注意してください。pacman で直接パッケージをアップデートする必要があります。<br />
<br />
この方法だと、Rust のバイナリが {{ic|~/.cargo/bin}} ではなく {{ic|/usr/bin}} にあり、{{ic|PATH}} に別のディレクトリを加えなくてよい利点があります。<br />
<br />
{{Note|既定では、{{Pkg|rustup}} パッケージをインストールしても、ツールチェインはインストール'''されません'''。かわりに、{{ic|/usr/bin/rustup}} コマンドから {{ic|/usr/bin/rustc}} や {{ic|/usr/bin/cargo}} など一般的なバイナリにシンボリックリンクが張られます。次に述べるように、Rust コマンドを動作させるには、利用者が手動でツールチェインをインストールする必要があります。}}<br />
<br />
ツールチェインをインストールするには、{{ic|stable}} か {{ic|nightly}} のどちらのバージョンを使用するか rustup に指定する必要があります:<br />
<br />
{{bc|<nowiki><br />
$ rustup default stable<br />
</nowiki>}}<br />
<br />
==== 使い方 ====<br />
<br />
{{ic|stable}}、{{ic|beta}}、{{ic|nightly}} や {{ic|1.23.0}} などのツールチェインを手動でインストールする必要があったり、また、他のツールチェインを使用したりテストするときには次のコマンドを入力します:<br />
<br />
$ rustup toolchain install ''toolchain''<br />
<br />
すると、Rust コマンドを {{ic|rustup run ''toolchain'' ''command''}} として実行できます。これらのコマンドを直接実行するには、ツールチェインをアクティベートする必要があります:<br />
$ rustup default toolchain<br />
<br />
{{ic|rustc -V}} を使って rust のバージョンを確認してください:<br />
<br />
{{hc|$ rustc -V |<nowiki><br />
rustc 1.26.0 (a77568041 2018-05-07)<br />
</nowiki>}}<br />
<br />
{{Note|Rustup は {{Pkg|rust}} パッケージに含まれている Rust コマンドのうち、{{ic|rustfmt}} や {{ic|rls}} などいくつかをインストールしません。これにより、Rust メンテナが nightly チャンネルを {{ic|rustfmt}}/{{ic|rls}} が壊れていても提供できるようになります。これらをインストールするには、個別に {{ic|rustup component add rls}} および {{ic|rustup component add rustfmt}} を実行します。また、実行することで、{{ic|rustfmt}}/{{ic|rls}} が壊れる場合、nightly チャンネルの更新を保留するようになります。}}<br />
<br />
{{Note|Rust 自身にはリンカはないので、リンカが別途インストールされてなければなりません。リンカとして例えば {{Pkg|gcc}} をインストールすることができます。リンカがないと Rust は {{ic|error: linker `cc` not found.}} とエラーを出力します。}}<br />
<br />
=== インストールのテスト ===<br />
<br />
以下のようなシンプルなプログラムをビルドして、Rust が正しくインストールされていることを確認してください:<br />
{{hc|~/hello.rs|<br />
fn main() {<br />
println!("Hello, World!");<br />
}<br />
}}<br />
<br />
{{ic|rustc}} でコンパイルして実行することができます:<br />
{{hc|$ rustc hello.rs && ./hello|<br />
Hello, World!<br />
}}<br />
<br />
== クロスコンパイル ==<br />
<br />
=== rustup を使う ===<br />
<br />
rustup を使うことで簡単にクロスコンパイルができます。rustup は多数のクロスコンパイルターゲットに対応しています。対応しているプラットフォームの完全なリストは {{ic|rustup target list}} を実行することで確認できます。<br />
<br />
例えば、gnu コンパイラを使って Windows 用にコンパイルする stable チャンネルの rust をインストールしたい場合、以下を実行:<br />
<br />
{{bc|<nowiki><br />
$ rustup install stable-x86_64-pc-windows-gnu<br />
</nowiki>}}<br />
<br />
上記のコマンドでは、コンパイル先のアーキテクチャ用の rust とツールしかインストールされません。場合によってはクロスコンパイルするのに追加でツールが必要になる可能性があります。<br />
<br />
=== Windows ===<br />
<br />
このセクションでは、{{ic|$ARCH}} がターゲットのアーキテクチャです ({{ic|x86_64}} または {{ic|i686}})。<br />
<br />
# {{AUR|mingw64-w64-gcc-base}} と {{Pkg|mingw-w64-gcc}} と {{Pkg|wine}} を[[インストール]]。<br />
# rustup を使っている場合、{{ic|rustup install stable-$ARCH-pc-windows-gnu}} と {{ic|rustup target add $ARCH-pc-windows-gnu}} を実行することで rust と標準ライブラリをインストールできます。rustup を使っていない場合、rustlib ディレクトリ ({{AUR|rust-nightly-bin}} を使用する場合は {{ic|/usr/local/lib/rustlib}}、公式の {{Pkg|rust}} パッケージを使用する場合は {{ic|/usr/lib/rustlib}}) に Windows 用の Rust の標準ライブラリのコピーをインストールします。一番簡単な方法は、ターゲットとするアーキテクチャの Windows 用の Rust インストーラーをダウンロードして、Wine を使ってインストール ({{ic|wine start my-rust-installer.msi}}) してから rustlib ディレクトリにコピー {{ic|$INSTALL_DIR/bin/rustlib/$ARCH-pc-windows-gnu}} する方法です。<br />
# 最後に、cargo の設定ファイルに以下を追加して MinGW-w64 の gcc/ar のパスを cargo に指定します:<br />
{{hc|~/.cargo/config|<nowiki><br />
[target.$ARCH-pc-windows-gnu]<br />
linker = "/usr/bin/$ARCH-w64-mingw32-gcc"<br />
ar = "/usr/$ARCH-w64-mingw32/bin/ar"<br />
</nowiki>}}<br />
<br />
cargo に {{ic|--target $ARCH-pc-windows-gnu}} と指定することで Windows 向けのクロスコンパイルができます:<br />
{{bc|<nowiki><br />
$ # Build<br />
$ cargo build --release --target "$ARCH-pc-windows-gnu"<br />
$ # Run unit tests under wine<br />
$ cargo test --target "$ARCH-pc-windows-gnu"<br />
</nowiki>}}<br />
<br />
=== 非公式パッケージ ===<br />
<br />
[[非公式ユーザーリポジトリ#archlinuxcn|非公式の archlinuxcn リポジトリ]]には i686, ARM, ARMv7, Windows 32, Windows 64 向けの rust-nightly と Rust 標準ライブラリが含まれています。パッケージをインストールすればクロスコンパイルができます。ただし、ARM のツールチェインは自分で用意する必要があります。32ビット版の Windows を対象にビルドする場合、実行するのに {{ic|libgcc_s_dw2-1.dll}} が必要になります。<br />
<br />
== Cargo ==<br />
<br />
Rust のパッケージマネージャである [https://crates.io/ Cargo] は {{Pkg|rust}} パッケージに付属しています。ナイトリー版は AUR の {{AUR|cargo-nightly-bin}} でインストールできます。{{Pkg|rustup}} を使用している場合、Cargo は既にインストールされています。<br />
<br />
Cargo は Rust プロジェクトの依存関係を宣言することができるようにするツールであり、それによってビルドがいつでも通ることが保証されます。<br />
<br />
=== 使用方法 ===<br />
<br />
Cargo を使って新しいプロジェクトを作成するには:<br />
{{bc|$ cargo new hello_world --bin}}<br />
<br />
{{Note|Cargo がプロジェクトをコンパイルするのに必要なメタデータを全て含めたマニフェストファイルである {{ic|Cargo.toml}} ファイルを Cargo は使用します:<br />
{{hc|head=Cargo.toml|<br />
output=[package]<br />
name = "hello_world"<br />
version = "0.1.0"<br />
authors = ["Your Name <you@example.com>"]<br />
}}<br />
}}<br />
<br />
=== sccache ===<br />
[https://github.com/mozilla/sccache sccache] を使うと中間生成物をキャッシュすることで、前回のコンパイル時から変化しない部分の再コンパイル時間を省きます。{{Pkg|sccache}} パッケージで[[インストール]]できます。<br />
<br />
Cargo で利用するには以下の方法があります。<br />
{{ic|RUSTC_WRAPPER}} [[環境変数]]を設定することで一時的に sccache を利用できます:<br />
RUSTC_WRAPPER=sccache cargo build<br />
<br />
常に利用するようにするには、{{ic|~/.cargo/config}} に以下の設定を加えます:<br />
{{hc|~/.cargo/config|<nowiki><br />
[build]<br />
rustc-wrapper = "sccache"<br />
</nowiki>}}<br />
<br />
== IDE のサポート ==<br />
<br />
=== ツール ===<br />
<br />
==== Racer ====<br />
<br />
[https://github.com/phildawes/racer Racer] 自動補完エンジンは Rust の自動補完が必要な際に現在最も優れている選択肢です。ただし、Racer を使うには Rust のソースコードのコピーをインストールする必要があります。入手する方法は複数存在します:<br />
* rustup を使う: {{ic|rustup component add rust-src}}。<br />
* AUR を使う: {{Aur|rust-src}} または {{Aur|rust-nightly-src}}。AUR を使用する場合は {{ic|RUST_SRC_PATH}} 環境変数を設定してください。<br />
ソースコードをインストールしたら、{{pkg|rust-racer}} パッケージをインストールするか、[[#Cargo|Cargo]] を使って Racer をインストールすることができます:<br />
<br />
$ cargo install racer<br />
<br />
==== Clippy ====<br />
<br />
[https://github.com/Manishearth/rust-clippy Clippy] は Rust のナイトリービルドに存在するコンパイラプラグイン機能を利用して、様々なエラーや慣習的な警告を検出する文法チェックを行います。安定版の Rust コンパイラでコンパイルするときに clippy を使うことはできません。Clippy は cargo でインストールできます:<br />
<br />
$ cargo install clippy<br />
<br />
=== エディタ ===<br />
<br />
{{Note|IDE やテキストエディタの対応状況については [https://areweideyet.com/ Are we (I)DE yet?] にも述べられています。}}<br />
<br />
==== Atom ====<br />
<br />
[[Atom]] はプラグインで Rust 言語をサポートします: [https://atom.io/packages/language-rust language-rust] と [https://atom.io/packages/linter-rust linter-rust]。<br />
<br />
==== IntelliJ IDEA ====<br />
<br />
[[IntelliJ IDEA]] には [https://github.com/intellij-rust/intellij-rust Rust プラグイン] が存在します。CLion でも同じプラグインが使えます。ツールチェインを設定するときは rustup を使ってソースをダウンロード ({{ic|rustup component add rust-src}}) して、ツールチェインのディレクトリとして {{ic|~/.rustup/toolchains/<your toolchain>/bin}} を選択してください。<br />
<br />
==== Visual Studio Code ====<br />
<br />
[[VSCode]] の Rust のサポートは [https://marketplace.visualstudio.com/items?itemName=kalitaalexey.vscode-rust Rust] 拡張をインストールすることで得られます。<br />
<br />
==== Vim ====<br />
<br />
[[Vim]] による Rust のサポートは公式の [https://github.com/rust-lang/rust.vim rust.vim] プラグインで得ることができます。<br />
<br />
====Emacs====<br />
<br />
Emacs の Rust サポートは公式の [https://github.com/rust-lang/rust-mode rust-mode] プラグインか {{AUR|emacs-rust-mode}} パッケージで有効にできます。<br />
<br />
== 参照 ==<br />
<br />
* [http://rust-lang.org/ Rust プログラミング言語の公式ウェブサイト]<br />
* [https://www.rust-lang.org/documentation.html Rust ドキュメント]<br />
* [http://doc.rust-lang.org/stable/book/ 公式 Rust Book]<br />
* [https://doc.rust-lang.org/std/ 標準ライブラリ API 索引]<br />
* [http://rustbyexample.com/ 説明が付されているサンプル集]<br />
* [https://github.com/ctjhoa/rust-learning Rust チュートリアルのページリスト]<br />
* [https://crates.io/ Cargo で使用できるライブラリ (crate)]<br />
* [https://this-week-in-rust.org/ 今週の Rust]<br />
* [http://blog.rust-lang.org/ Rust プログラミング言語ブログ]<br />
* [https://users.rust-lang.org/ Rust ユーザーフォーラム]<br />
* [https://internals.rust-lang.org/ Rust Internals フォーラム]<br />
* [https://rust.libhunt.com/ Awesome Rust: Rust ライブラリやリソースの精選集]<br />
* [[Wikipedia:ja:Rust (プログラミング言語)|Wikipedia の記事]]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Sway&diff=18170
Sway
2020-11-07T01:17:55Z
<p>Hiromi-mi: /* カーソルテーマとカーソルの大きさ */ en:Sway 英語版 639731 に追従</p>
<hr />
<div>[[Category:タイル型ウィンドウマネージャ]]<br />
[[Category:動的ウィンドウマネージャ]]<br />
[[en:Sway]]<br />
''sway'' (SirCmpwn's Wayland window manager) は [[i3]] と互換性のある [[Wayland]] コンポジタを作成しようという試みです。[http://swaywm.org 公式ウェブサイト] より:<br />
:Sway は Wayland において Xorg の i3 ウィンドウマネージャの代わりとなるウィンドウマネージャです。既存の i3 設定で動作し i3 の機能のほとんどをサポートしています。<br />
<br />
== 現状 ==<br />
[https://github.com/swaywm/sway/releases/tag/1.0 Release sway 1.0] にあるように、Sway は基本的に100% i3 と互換です。実装された機能と、実装されていない機能については以下のリンクを参照してください:<br />
*[https://github.com/SirCmpwn/sway/issues/2#issue-99897933 i3 の機能のサポート]<br />
*[https://github.com/SirCmpwn/sway/issues/98 IPC 機能のサポート]<br />
*[https://github.com/SirCmpwn/sway/issues/343 i3bar の互換性]<br />
*[https://github.com/SirCmpwn/sway/issues/307 Airblader のフォークの機能]<br />
<br />
== インストール ==<br />
<br />
''sway'' は {{Pkg|sway}} パッケージで[[インストール]]できます。最新の開発版は {{AUR|wlroots-git}} と {{AUR|sway-git}} でインストールできます。''sway'' は ''wlroots'' に緻密に依存しているので、''sway'' 更新時には ''wlroots'' も更新するのが望ましいです。<br />
<br />
また、画面をロックする {{Pkg|swaylock}} や、アイドル時間管理デーモンの {{Pkg|swayidle}} もインストールできます。<br />
<br />
デフォルトのアプリケーションランチャーは {{Pkg|dmenu}} であり、ターミナルエミュレータは {{Pkg|alacritty}} です。インストールするか、あるいは設定ファイルで別のアプリケーションに変更するかを、初回起動の前に行なうことが望ましいです。<br />
<br />
== sway の起動 ==<br />
<br />
{{Tip|ウィンドウ装飾ライブラリなど設定する必要がある環境変数については [[Wayland#GUI ライブラリ]]を参照。}}<br />
<br />
=== ターミナルから ===<br />
ターミナルに {{ic|sway}} と入力すれば sway が起動します。<br />
<br />
=== ディスプレイマネージャを使う ===<br />
{{Note|Sway は公式にはディスプレイマネージャをサポートしていません。}}<br />
sway のセッションは {{ic|/usr/share/wayland-sessions/sway.desktop}} にあります。[[GDM]] や [[SDDM]] などのディスプレイマネージャは自動的にセッションを認識します。<br />
<br />
あるいは、テキストベースのセッションマネージャを使うこともできます。[[ディスプレイマネージャ#コンソール]]を参照してください。<br />
<br />
== 設定 ==<br />
i3 を既に使っている場合、i3 の設定を {{ic|~/.config/sway/config}} にコピーすればそのまま動作します。i3 を使ったことがない場合は、サンプル設定ファイルを {{ic|~/.config/sway/config}} にコピーしてください。サンプル設定ファイルは {{ic|/etc/sway/config}} にあります。ただし {{ic|DFALLBACK_CONFIG_DIR}} フラグが設定されている場合は存在しません。設定方法は {{man|5|sway}} を見てください。<br />
<br />
=== キーマップ ===<br />
デフォルトでは、sway は US QWERTY キーマップで起動します。キーマップを書き換えるには:<br />
{{hc|~/.config/sway/config|<br />
input * {<br />
xkb_layout "us,de,ru"<br />
xkb_variant "colemak,,typewriter"<br />
xkb_options "grp:win_space_toggle"<br />
}<br />
<br />
input <identifier> xkb_model "pc101"<br />
}}<br />
<br />
なお、Sway は起動時に {{ic|XKB_DEFAULT_LAYOUT}} や {{ic|XKB_DEFAULT_VARIANT}} などの[[環境変数]]を読み込みますが、環境変数よりも設定ファイルの内容が優先されます。<br />
<br />
詳細は {{man|5|sway-input}} および {{man|7|xkeyboard-config}} を参照してください。<br />
<br />
=== キーのオートリピート設定 ===<br />
Typematic Delay (オートリピート開始までの時間) と Typematic Rate (1秒間のリピート回数) は、{{ic|input}} セクションに以下の行を加えると変更できます。設定項目について詳しくは[[コンソールでのキーボード設定#typematic delay と rate の調整]]を参照してください。<br />
<br />
{{hc|~/.config/sway/config|<br />
input <identifier> repeat_delay 300<br />
input <identifier> repeat_rate 30<br />
}}<br />
<br />
=== ステータスバー ===<br />
ステータスバーを表示したいときは {{Pkg|i3status}} プログラムをインストールするのが簡単です。sway の設定の末尾に以下のスニペットを追加するだけで表示できます:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bar {<br />
status_command i3status<br />
}</nowiki>}}<br />
i3status をカラー出力させたい場合、i3status の設定の以下の部分を調整してください:<br />
{{hc|~/.config/i3status/config|<nowiki><br />
general {<br />
colors = true<br />
interval = 5<br />
}<br />
</nowiki>}}<br />
どちらの例でも、システム全体にインストールされた設定ファイルはユーザーディレクトリにコピーされるので、それを修正してください。<br />
<br />
=== 壁紙 ===<br />
Sway 1.1 以降、壁紙機能は {{Pkg|swaybg}} に分割され、{{ic|output}} コマンドを動作させるのに必要です。<br />
<br />
以下の行を sway の設定の最後に追加することで、全ての画面 ({{ic|"*"}} という名前にマッチする画面) で背景画像を設定できます:<br />
{{hc|~/.config/sway/config|<nowiki><br />
output "*" background /path/to/image.jpg fill<br />
</nowiki>}}<br />
ファイルの名前やパスは適当に置き換えて下さい。<br />
<br />
また、背景は単一色にもできます:<br />
{{bc|output * bg #000000 solid_color}}<br />
<br />
{{Note|{{Pkg|swaybg}} コマンドの GTK3 フロントエンドに {{AUR|azote}} があります。}}<br />
<br />
=== 入力デバイス ===<br />
特定の入力デバイスの設定を調整することができます。例えば、タッチパッドの tap-to-click とナチュナルスクロールを有効にするには、以下の input ブロックを追加:<br />
{{hc|~/.config/sway/config|<nowiki><br />
input "2:14:ETPS/2_Elantech_Touchpad" {<br />
tap enabled<br />
natural_scroll enabled<br />
}<br />
</nowiki>}}<br />
デバイスの識別子は以下のコマンドで確認できます:<br />
$ swaymsg -t get_inputs<br />
上記のコマンドの出力には、"/" などの記号をエスケープするために "\" が付いていることがあります (例: {{ic|"2:14:ETPS\/2_Elantech_Touchpad"}})。設定に追加するときはエスケープを取り除いてください。<br />
<br />
アクセラレーションなど他のオプションについては {{man|5|sway-input}} で詳細を確認できます。<br />
<br />
=== HiDPI ===<br />
<br />
設定ファイルの {{ic|output}} コマンドでディスプレイのスケールファクタを設定してください。スケールファクタは小数でも指定できます。HiDPI ディスプレイの場合は 2 などに設定してください。<br />
output <name> scale <factor><br />
ディスプレイの名前は以下のコマンドで確認できます:<br />
$ swaymsg -t get_outputs<br />
<br />
=== カスタムキーバインド ===<br />
キーボードの[[特別なキーボードキー|特殊なキー]]を使ってコマンドを実行することができます。例えば、ボリュームや画面の明るさを制御するには:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') +5%<br />
bindsym XF86AudioLowerVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') -5%<br />
bindsym XF86AudioMute exec pactl set-sink-mute $(pacmd list-sinks |awk '/* index:/{print $3}') toggle<br />
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-<br />
bindsym XF86MonBrightnessUp exec brightnessctl set +5%<br />
</nowiki>}}<br />
<br />
{{Pkg|brightnessctl}} を使うことで輝度を制御できます。輝度や色補正を制御するユーティリティについては[[バックライト]]を見てください。<br />
<br />
=== .Xresources ===<br />
<br />
sway で使用するには {{ic|.Xresources}} を {{ic|.Xdefaults}} にコピーしてください。<br />
<br />
=== XWayland ===<br />
"cannot open display" というエラーでプログラムが起動しない場合、X上で動作するプログラムであることが考えられます。XWayland 互換レイヤーを使うと Wayland 上で動作させられます。{{Pkg|xorg-server-wayland}} パッケージをインストールしてください。<br />
<br />
一方、XWayland を無効化し、Sway の純粋な Wayland セッションを使うには次のようにします:<br />
{{hc|~/.config/sway/config|<br />
xwayland disable<br />
}}<br />
{{Note|アプリケーションによっては[[Wayland#GUI ライブラリ|設定]]が Wayland ネイティブで動作させることが必要な場合や、大抵のプロプライエタリなアプリケーションなどでは全く Wayland に対応していないことがあります。今のところそのようなアプリケーションが使えるように XWayland は無効化しないことが推奨されます。}}<br />
<br />
== ヒントとテクニック ==<br />
<br />
=== ログイン時に自動起動 ===<br />
<br />
tty1 にログインしたときに起動するには、以下を {{ic|.bash_profile}} に追加してください:<br />
<br />
<nowiki>if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then<br />
exec sway<br />
fi</nowiki><br />
<br />
=== CapsLock/NumLock の有効化 ===<br />
<br />
CapsLock や NumLock を有効にするには:<br />
{{hc|~/.config/sway/config|<br />
input * xkb_capslock enable<br />
input * xkb_numlock enable<br />
}}<br />
<br />
=== dmenu 代替 ===<br />
<br />
[[dmenu]] は XWayland 上で動作するため、フォーカスが他のところへ移るとアプリケーションは反応しなくなります。反応しなくなった dmenu を元に戻すには sway を再起動する必要があります。[[rofi]] を使用するという案もありますが、rofi をメニューとして使用するには、urxvt など wayland ネイティブではない仮想端末から起動しなくてはなりません。Sway でメニューとして起動してもメニューにフォーカスが移りません (rofi にマウスを載せないと入力が通りません)。詳しくは https://github.com/swaywm/sway/issues/1367#issuecomment-332910152 を参照。<br />
<br />
=== カーソルテーマとカーソルの大きさ ===<br />
[[カーソルテーマ]] やカーソルの大きさを変更するには:<br />
<br />
{{hc|~/.config/sway/config|<br />
seat seat0 xcursor_theme ''my_cursor_theme'' ''my_cursor_size''<br />
}}<br />
<br />
{{ic|''my_cursor_theme''}} は {{ic|Default}}, {{ic|Adwaita}}, {{ic|Simple-and-Soft}} などに置きかえ、{{ic|''my_cursor_size''}} は {{ic|48}} などに置きかえます。<br />
変更を反映させるにはアプリケーションを再起動してください。<br />
さらなる詳細は[[カーソルテーマ]]と {{man|5|sway-input}} を参照。<br />
<br />
{{Note|Wayland ではクライアント側でカーソルテーマが決定されます。アプリケーションが{{ic|$XCURSOR_SIZE}}, {{ic|$XCURSOR_THEME}} 環境変数を参照しないこともありえます。}}<br />
<br />
== 既知の問題 ==<br />
<br />
=== 仮想環境で使う ===<br />
<br />
Sway は [[VirtualBox]] や [[VMware]] ESXi 上でも動作するものの、場合によっては設定が必要です。<br />
<br />
==== Sway を tty から起動できない ====<br />
<br />
3D アクセラレーションを有効にする必要があります。[[VMware#Intel と Optimus で 3D グラフィックを有効化]] を参照してください。<br />
<br />
==== マウスカーソルが表示されない ====<br />
<br />
VMSVGA グラフィックコントローラーを使うとカーソルが表示されません。Sway 起動時に {{ic|WLR_NO_HARDWARE_CURSORS}} 変数を設定すると解決します。詳細は [https://github.com/swaywm/sway/issues/3814] を参照してください。<br />
<br />
=== Sway Socket Not Detected ===<br />
<br />
ターミナルマルチプレクサ (例: GNU Screen や tmux) の中で {{ic|swaymsg -t get_outputs}} などのように {{ic|swaymsg}} を使ったときに、以下のようなメッセージが返ってくることがあります:<br />
sway socket not detected.<br />
ERROR: Unable to connect to<br />
これは {{ic|swaymsg}} が {{ic|SWAYSOCK}} のソケットに接続できないことを意味しています。<br />
<br />
{{ic|SWAYSOCK}} の現在の値を確認するには:<br />
$ env | fgrep SWAYSOCK<br />
SWAYSOCK=/run/user/1000/sway-ipc.1000.4981.sock<br />
<br />
最初の sway ソケットにアタッチしてみて、コマンドを再実行してみてください:<br />
$ export SWAYSOCK=$(ls /run/user/*/sway-ipc.*.sock | head -n 1)<br />
<br />
上記のエラーを解決するには、マルチプレクサの外でコマンドを実行する必要があります。<br />
<br />
=== Unable to retrieve socket path ===<br />
<br />
tty から {{ic|swaymsg -t}} を実行すると、<br />
Unable to retrieve socket path<br />
というメッセージが表示されます。これは {{ic|SWAYLOCK}} 環境変数が Sway 起動後に設定されるためで、{{ic|swaymsg}} は Sway 内のターミナルで実行してください。<br />
<br />
=== ディスプレイの解像度が正しくない ===<br />
<br />
{{ic|output "HDMI-A-1" res 1280x1024}} などの設定オプションで解像度が正しく設定できない場合があります。解像度の設定は {{Pkg|wlc}} コンポジタが受け持っており、TTY からディスプレイの解像度を認識します。<br />
<br />
{{ic|1=video=HDMI-A-1:1280x1024:e}} などのカーネルパラメータを指定したりカスタム EDID バイナリ ([[Kernel Mode Setting]] を参照) を使用することで TTY の解像度を変えられる場合があります (WLC や Sway の解像度も変わります)。<br />
<br />
== 参照 ==<br />
<br />
* [https://github.com/SirCmpwn/sway Github プロジェクト]<br />
* [http://swaywm.org ウェブサイト]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Sway&diff=18156
Sway
2020-11-06T01:00:16Z
<p>Hiromi-mi: /* CapsLock/NumLock の切替 */ 英語版 639731 に追従</p>
<hr />
<div>[[Category:タイル型ウィンドウマネージャ]]<br />
[[Category:動的ウィンドウマネージャ]]<br />
[[en:Sway]]<br />
''sway'' (SirCmpwn's Wayland window manager) は [[i3]] と互換性のある [[Wayland]] コンポジタを作成しようという試みです。[http://swaywm.org 公式ウェブサイト] より:<br />
:Sway は Wayland において Xorg の i3 ウィンドウマネージャの代わりとなるウィンドウマネージャです。既存の i3 設定で動作し i3 の機能のほとんどをサポートしています。<br />
<br />
== 現状 ==<br />
[https://github.com/swaywm/sway/releases/tag/1.0 Release sway 1.0] にあるように、Sway は基本的に100% i3 と互換です。実装された機能と、実装されていない機能については以下のリンクを参照してください:<br />
*[https://github.com/SirCmpwn/sway/issues/2#issue-99897933 i3 の機能のサポート]<br />
*[https://github.com/SirCmpwn/sway/issues/98 IPC 機能のサポート]<br />
*[https://github.com/SirCmpwn/sway/issues/343 i3bar の互換性]<br />
*[https://github.com/SirCmpwn/sway/issues/307 Airblader のフォークの機能]<br />
<br />
== インストール ==<br />
<br />
''sway'' は {{Pkg|sway}} パッケージで[[インストール]]できます。最新の開発版は {{AUR|wlroots-git}} と {{AUR|sway-git}} でインストールできます。''sway'' は ''wlroots'' に緻密に依存しているので、''sway'' 更新時には ''wlroots'' も更新するのが望ましいです。<br />
<br />
また、画面をロックする {{Pkg|swaylock}} や、アイドル時間管理デーモンの {{Pkg|swayidle}} もインストールできます。<br />
<br />
デフォルトのアプリケーションランチャーは {{Pkg|dmenu}} であり、ターミナルエミュレータは {{Pkg|alacritty}} です。インストールするか、あるいは設定ファイルで別のアプリケーションに変更するかを、初回起動の前に行なうことが望ましいです。<br />
<br />
== sway の起動 ==<br />
<br />
{{Tip|ウィンドウ装飾ライブラリなど設定する必要がある環境変数については [[Wayland#GUI ライブラリ]]を参照。}}<br />
<br />
=== ターミナルから ===<br />
ターミナルに {{ic|sway}} と入力すれば sway が起動します。<br />
<br />
=== ディスプレイマネージャを使う ===<br />
{{Note|Sway は公式にはディスプレイマネージャをサポートしていません。}}<br />
sway のセッションは {{ic|/usr/share/wayland-sessions/sway.desktop}} にあります。[[GDM]] や [[SDDM]] などのディスプレイマネージャは自動的にセッションを認識します。<br />
<br />
あるいは、テキストベースのセッションマネージャを使うこともできます。[[ディスプレイマネージャ#コンソール]]を参照してください。<br />
<br />
== 設定 ==<br />
i3 を既に使っている場合、i3 の設定を {{ic|~/.config/sway/config}} にコピーすればそのまま動作します。i3 を使ったことがない場合は、サンプル設定ファイルを {{ic|~/.config/sway/config}} にコピーしてください。サンプル設定ファイルは {{ic|/etc/sway/config}} にあります。ただし {{ic|DFALLBACK_CONFIG_DIR}} フラグが設定されている場合は存在しません。設定方法は {{man|5|sway}} を見てください。<br />
<br />
=== キーマップ ===<br />
デフォルトでは、sway は US QWERTY キーマップで起動します。キーマップを書き換えるには:<br />
{{hc|~/.config/sway/config|<br />
input * {<br />
xkb_layout "us,de,ru"<br />
xkb_variant "colemak,,typewriter"<br />
xkb_options "grp:win_space_toggle"<br />
}<br />
<br />
input <identifier> xkb_model "pc101"<br />
}}<br />
<br />
なお、Sway は起動時に {{ic|XKB_DEFAULT_LAYOUT}} や {{ic|XKB_DEFAULT_VARIANT}} などの[[環境変数]]を読み込みますが、環境変数よりも設定ファイルの内容が優先されます。<br />
<br />
詳細は {{man|5|sway-input}} および {{man|7|xkeyboard-config}} を参照してください。<br />
<br />
=== キーのオートリピート設定 ===<br />
Typematic Delay (オートリピート開始までの時間) と Typematic Rate (1秒間のリピート回数) は、{{ic|input}} セクションに以下の行を加えると変更できます。設定項目について詳しくは[[コンソールでのキーボード設定#typematic delay と rate の調整]]を参照してください。<br />
<br />
{{hc|~/.config/sway/config|<br />
input <identifier> repeat_delay 300<br />
input <identifier> repeat_rate 30<br />
}}<br />
<br />
=== ステータスバー ===<br />
ステータスバーを表示したいときは {{Pkg|i3status}} プログラムをインストールするのが簡単です。sway の設定の末尾に以下のスニペットを追加するだけで表示できます:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bar {<br />
status_command i3status<br />
}</nowiki>}}<br />
i3status をカラー出力させたい場合、i3status の設定の以下の部分を調整してください:<br />
{{hc|~/.config/i3status/config|<nowiki><br />
general {<br />
colors = true<br />
interval = 5<br />
}<br />
</nowiki>}}<br />
どちらの例でも、システム全体にインストールされた設定ファイルはユーザーディレクトリにコピーされるので、それを修正してください。<br />
<br />
=== 壁紙 ===<br />
Sway 1.1 以降、壁紙機能は {{Pkg|swaybg}} に分割され、{{ic|output}} コマンドを動作させるのに必要です。<br />
<br />
以下の行を sway の設定の最後に追加することで、全ての画面 ({{ic|"*"}} という名前にマッチする画面) で背景画像を設定できます:<br />
{{hc|~/.config/sway/config|<nowiki><br />
output "*" background /path/to/image.jpg fill<br />
</nowiki>}}<br />
ファイルの名前やパスは適当に置き換えて下さい。<br />
<br />
また、背景は単一色にもできます:<br />
{{bc|output * bg #000000 solid_color}}<br />
<br />
{{Note|{{Pkg|swaybg}} コマンドの GTK3 フロントエンドに {{AUR|azote}} があります。}}<br />
<br />
=== 入力デバイス ===<br />
特定の入力デバイスの設定を調整することができます。例えば、タッチパッドの tap-to-click とナチュナルスクロールを有効にするには、以下の input ブロックを追加:<br />
{{hc|~/.config/sway/config|<nowiki><br />
input "2:14:ETPS/2_Elantech_Touchpad" {<br />
tap enabled<br />
natural_scroll enabled<br />
}<br />
</nowiki>}}<br />
デバイスの識別子は以下のコマンドで確認できます:<br />
$ swaymsg -t get_inputs<br />
上記のコマンドの出力には、"/" などの記号をエスケープするために "\" が付いていることがあります (例: {{ic|"2:14:ETPS\/2_Elantech_Touchpad"}})。設定に追加するときはエスケープを取り除いてください。<br />
<br />
アクセラレーションなど他のオプションについては {{man|5|sway-input}} で詳細を確認できます。<br />
<br />
=== HiDPI ===<br />
<br />
設定ファイルの {{ic|output}} コマンドでディスプレイのスケールファクタを設定してください。スケールファクタは小数でも指定できます。HiDPI ディスプレイの場合は 2 などに設定してください。<br />
output <name> scale <factor><br />
ディスプレイの名前は以下のコマンドで確認できます:<br />
$ swaymsg -t get_outputs<br />
<br />
=== カスタムキーバインド ===<br />
キーボードの[[特別なキーボードキー|特殊なキー]]を使ってコマンドを実行することができます。例えば、ボリュームや画面の明るさを制御するには:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') +5%<br />
bindsym XF86AudioLowerVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') -5%<br />
bindsym XF86AudioMute exec pactl set-sink-mute $(pacmd list-sinks |awk '/* index:/{print $3}') toggle<br />
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-<br />
bindsym XF86MonBrightnessUp exec brightnessctl set +5%<br />
</nowiki>}}<br />
<br />
{{Pkg|brightnessctl}} を使うことで輝度を制御できます。輝度や色補正を制御するユーティリティについては[[バックライト]]を見てください。<br />
<br />
=== .Xresources ===<br />
<br />
sway で使用するには {{ic|.Xresources}} を {{ic|.Xdefaults}} にコピーしてください。<br />
<br />
=== XWayland ===<br />
"cannot open display" というエラーでプログラムが起動しない場合、X上で動作するプログラムであることが考えられます。XWayland 互換レイヤーを使うと Wayland 上で動作させられます。{{Pkg|xorg-server-wayland}} パッケージをインストールしてください。<br />
<br />
一方、XWayland を無効化し、Sway の純粋な Wayland セッションを使うには次のようにします:<br />
{{hc|~/.config/sway/config|<br />
xwayland disable<br />
}}<br />
{{Note|アプリケーションによっては[[Wayland#GUI ライブラリ|設定]]が Wayland ネイティブで動作させることが必要な場合や、大抵のプロプライエタリなアプリケーションなどでは全く Wayland に対応していないことがあります。今のところそのようなアプリケーションが使えるように XWayland は無効化しないことが推奨されます。}}<br />
<br />
== ヒントとテクニック ==<br />
<br />
=== ログイン時に自動起動 ===<br />
<br />
tty1 にログインしたときに起動するには、以下を {{ic|.bash_profile}} に追加してください:<br />
<br />
<nowiki>if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then<br />
exec sway<br />
fi</nowiki><br />
<br />
=== CapsLock/NumLock の有効化 ===<br />
<br />
CapsLock や NumLock を有効にするには:<br />
{{hc|~/.config/sway/config|<br />
input * xkb_capslock enable<br />
input * xkb_numlock enable<br />
}}<br />
<br />
=== dmenu 代替 ===<br />
<br />
[[dmenu]] は XWayland 上で動作するため、フォーカスが他のところへ移るとアプリケーションは反応しなくなります。反応しなくなった dmenu を元に戻すには sway を再起動する必要があります。[[rofi]] を使用するという案もありますが、rofi をメニューとして使用するには、urxvt など wayland ネイティブではない仮想端末から起動しなくてはなりません。Sway でメニューとして起動してもメニューにフォーカスが移りません (rofi にマウスを載せないと入力が通りません)。詳しくは https://github.com/swaywm/sway/issues/1367#issuecomment-332910152 を参照。<br />
<br />
== 既知の問題 ==<br />
<br />
=== 仮想環境で使う ===<br />
<br />
Sway は [[VirtualBox]] や [[VMware]] ESXi 上でも動作するものの、場合によっては設定が必要です。<br />
<br />
==== Sway を tty から起動できない ====<br />
<br />
3D アクセラレーションを有効にする必要があります。[[VMware#Intel と Optimus で 3D グラフィックを有効化]] を参照してください。<br />
<br />
==== マウスカーソルが表示されない ====<br />
<br />
VMSVGA グラフィックコントローラーを使うとカーソルが表示されません。Sway 起動時に {{ic|WLR_NO_HARDWARE_CURSORS}} 変数を設定すると解決します。詳細は [https://github.com/swaywm/sway/issues/3814] を参照してください。<br />
<br />
=== Sway Socket Not Detected ===<br />
<br />
ターミナルマルチプレクサ (例: GNU Screen や tmux) の中で {{ic|swaymsg -t get_outputs}} などのように {{ic|swaymsg}} を使ったときに、以下のようなメッセージが返ってくることがあります:<br />
sway socket not detected.<br />
ERROR: Unable to connect to<br />
これは {{ic|swaymsg}} が {{ic|SWAYSOCK}} のソケットに接続できないことを意味しています。<br />
<br />
{{ic|SWAYSOCK}} の現在の値を確認するには:<br />
$ env | fgrep SWAYSOCK<br />
SWAYSOCK=/run/user/1000/sway-ipc.1000.4981.sock<br />
<br />
最初の sway ソケットにアタッチしてみて、コマンドを再実行してみてください:<br />
$ export SWAYSOCK=$(ls /run/user/*/sway-ipc.*.sock | head -n 1)<br />
<br />
上記のエラーを解決するには、マルチプレクサの外でコマンドを実行する必要があります。<br />
<br />
=== Unable to retrieve socket path ===<br />
<br />
tty から {{ic|swaymsg -t}} を実行すると、<br />
Unable to retrieve socket path<br />
というメッセージが表示されます。これは {{ic|SWAYLOCK}} 環境変数が Sway 起動後に設定されるためで、{{ic|swaymsg}} は Sway 内のターミナルで実行してください。<br />
<br />
=== ディスプレイの解像度が正しくない ===<br />
<br />
{{ic|output "HDMI-A-1" res 1280x1024}} などの設定オプションで解像度が正しく設定できない場合があります。解像度の設定は {{Pkg|wlc}} コンポジタが受け持っており、TTY からディスプレイの解像度を認識します。<br />
<br />
{{ic|1=video=HDMI-A-1:1280x1024:e}} などのカーネルパラメータを指定したりカスタム EDID バイナリ ([[Kernel Mode Setting]] を参照) を使用することで TTY の解像度を変えられる場合があります (WLC や Sway の解像度も変わります)。<br />
<br />
== 参照 ==<br />
<br />
* [https://github.com/SirCmpwn/sway Github プロジェクト]<br />
* [http://swaywm.org ウェブサイト]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Arch_%E3%83%96%E3%83%BC%E3%83%88%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9&diff=18152
Arch ブートプロセス
2020-11-05T11:02:29Z
<p>Hiromi-mi: 言語間リンク更新, 関連記事追加</p>
<hr />
<div>[[Category:ブートプロセス]]<br />
[[Category:Arch について]]<br />
[[ar:Arch boot process]]<br />
[[bs:Arch boot process]]<br />
[[cs:Arch boot process]]<br />
[[en:Arch boot process]]<br />
[[es:Arch boot process]]<br />
[[fr:Processus de boot]]<br />
[[it:Arch boot process]]<br />
[[pt:Arch boot process]]<br />
[[zh-hans:Arch boot process]]<br />
{{Related articles start}}<br />
{{Related|ブートローダー}}<br />
{{Related|Master Boot Record}}<br />
{{Related|GUID Partition Table}}<br />
{{Related|Unified Extensible Firmware Interface}}<br />
{{Related|mkinitcpio}}<br />
{{Related|init}}<br />
{{Related|systemd}}<br />
{{Related|fstab}}<br />
{{Related|自動起動}}<br />
{{Related articles end}}<br />
Arch Linux を起動するためには、[[GRUB|GRUB]] や [[Syslinux|Syslinux]] などの Linux 対応のブートローダを、[[Master Boot Record|Master Boot Record]] もしくは [[GUID Partition Table|GUID Partition Table]] にインストールする必要があります。ブートローダは、ブートプロセスが始まる前にカーネルや[[mkinitcpio|初期 RAM ディスク]]をロードする仕事を行います。[[Wikipedia:ja:BIOS|BIOS]] と [[Unified Extensible Firmware Interface|UEFI]] で起動の流れはかなり異なっています。このページや関連するページに詳しい説明があります。<br />
<br />
== ブートプロセス ==<br />
<br />
=== BIOS ===<br />
# システムの電源が入れられ [[Wikipedia:ja:Power On Self Test|POST]] が実行される<br />
# BIOS がブートに必要なシステムハードウェア (ディスクやキーボードコントローラなど) を初期化する<br />
# (BIOS のディスク順で) 最初のディスクの最初の440バイト ([[Master Boot Record|Master Boot Record]]) が BIOS によって実行される<br />
# BIOS から MBR ブートコードにコントロールが移り、次のステージのコードが起動する (通常は[[ブートローダー]]のコード)<br />
# 起動した(2番目の)コード(ブートローダー)はサポートと設定ファイルを読み込む<br />
# 設定ファイルのデータに基づき、ブートローダーはカーネルと initramfs をシステムメモリ (RAM) にロードしてカーネルを起動する<br />
<br />
=== UEFI ===<br />
次のページを参照してください: [[Unified Extensible Firmware Interface#UEFI のブートプロセス]]<br />
<br />
== ブートローダー ==<br />
<br />
ブートローダーは、ファームウェア([[Wikipedia:BIOS|BIOS]] または [[UEFI]]) によって起動されるソフトウェアです。カーネルは必要な [[カーネルパラメータ]] と [[mkinitcpio|初期RAMディスク]] を設定ファイルに基づいてロードします。UEFI の場合、EFI ブートスタブを使用して、UEFI からカーネル自体を直接起動できます。ブート前にカーネルパラメータを編集するために、別のブートローダやブートマネージャを使うこともできます。<br />
<br />
{{Warning|ブートローダーはカーネルと initramfs イメージにアクセスできなければなりません。アクセスできなければシステムはブートしません。したがって、通常のセットアップでは、{{ic|/boot}} へのアクセスをサポートしている必要があります。つまり、ブロックデバイスからスタックされたブロックデバイス (LVM、RAID、dm-crypt、LUKSなど) まで、カーネルやinitramfsイメージが存在するファイルシステムまで、すべてをサポートしなければなりません。}}<br />
<br />
{{Note|[[マイクロコード]] の更新を読み込むには、ブートローダの設定を調整する必要があります。 [https://www.archlinux.org/news/changes-to-intel-microcodeupdates/]}}<br />
<br />
=== 機能比較 ===<br />
<br />
{{Note|<br />
GPT は UEFI 仕様の一部であるため、すべての UEFI ブートローダーは GPT ディスクをサポートします。BIOS システム上の GPT は、[https://www.rodsbooks.com/gdisk/hybrid.html HybridMBR]で "hybrid booting" を使うか、新しい [http://repo.or.cz/syslinux.git/blob/HEAD:/doc/gpt.txt GPTのみ] プロトコルを使うことで可能です。ただしこのプロトコルは特定の BIOS 実装で問題を引き起こす可能性があります。詳細については、[http://www.rodsbooks.com/gdisk/bios.html#bios書籍] を参照してください。<br />
* ファイルシステムのサポートで言及されている暗号化は [[wikipedia:Filesystem-level encryption|filesystem-level encryption]] であり [[dm-crypt|ブロックレベルの暗号化]] とは関係ありません。<br />
}}<br />
<br />
{| class="wikitable sortable"<br />
! rowspan="2"| 名前<br />
! colspan="2"| ファームウェア<br />
! colspan="2"| [[パーティショニング#パーティションテーブル|パーティションテーブル]]<br />
! rowspan="2"| マルチブート<br />
! colspan="5"| [[ファイルシステム]]<br />
! rowspan="2"| 備考<br />
|-<br />
! BIOS !! [[UEFI]]<br />
! [[MBR]] !! [[GPT]]<br />
! [[Btrfs]] !! [[ext4]] !! ReiserFS !! [[VFAT]] !! [[XFS]]<br />
|-<br />
! [[EFISTUB]]<br />
| {{-}} || {{Yes}}<br />
| {{Yes}} || {{Yes}}<br />
| {{-}}<br />
| {{-}} || {{-}} || {{-}} || {{G|Inherited from firmware<sup>1</sup>}} || {{-}}<br />
| カーネルはEFI実行可能ファイルに変換され、[[UEFI]] ファームウェアまたは別のブートローダーから直接ロードされます。<br />
|-<br />
! [[Clover]]<br />
| {{G|Emulates UEFI}} || {{Yes}}<br />
| {{Yes}} || {{Yes}}<br />
| {{Yes}}<sup>2</sup><br />
| {{No}} || {{Y|Without encryption}} || {{No}} || {{G|Inherited from firmware<sup>1</sup>}} || {{No}}<br />
| rEFIt のフォークは、[[wikipedia:OSx86|macOS on non-Apple hardware]] を実行するように変更されました。<br />
|-<br />
! [[GRUB]]<br />
| {{Yes}} || {{Yes}}<br />
| {{Yes}} || {{Yes}}<br />
| {{Yes}}<br />
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}<br />
| BIOS / GPT 構成では、[[GRUB#BIOS|BIOSシステム]] が必要です。 <br/> RAID、LUKS1、LVMをサポートします(シンプロビジョニングボリュームはサポートしません)<br />
|-<br />
! [[rEFInd]]<br />
| {{No}} || {{Yes}}<br />
| {{Yes}} || {{Yes}}<br />
| {{Yes}}<sup>2</sup><br />
| {{Y|Without encryption}} || {{Y|Without encryption}} || {{Y|Without tail-packing feature}} || {{G|Inherited from firmware<sup>1</sup>}} || {{No}}<br />
| 明示的な構成なしでカーネルとパラメーターの自動検出をサポートします。<br />
|-<br />
! [[Syslinux]]<br />
| {{Yes}} || {{Y|[[Syslinux#Limitations of UEFI Syslinux|Partial]]}}<br />
| {{Yes}} || {{Yes}}<br />
| {{Y|[[Syslinux#Chainloading|Partial]]}}<br />
| {{Y|Without: multi-device volumes, compression, encryption}} || {{Y|Without encryption}} || {{No}} || {{Yes}} || {{Y|MBR only; without sparse inodes}}<br />
| 特定の [[ファイルシステム]] 機能はサポートされていません。[https://wiki.syslinux.org/wiki/index.php?title=Filesystem] <br/>ファイルシステムドライバーがありません [https://bugzilla.syslinux.org/show_bug.cgi?id=33] は、インストールされているファイルシステムにのみアクセスできます。<br />
|-<br />
! [[systemd-boot]]<br />
| {{No}} || {{Yes}}<br />
| {{Y|[https://github.com/systemd/systemd/issues/1125 Manual install only]}} || {{Yes}}<br />
| {{Yes}}<sup>2</sup><br />
| {{No}} || {{No}} || {{No}} || {{G|Inherited from firmware<sup>1</sup>}} || {{No}}<br />
| [[ESP]] または拡張ブートローダーパーティション(XBOOTLDRパーティション)以外のパーティションからバイナリを起動することはできません。<br />
|-<br />
! {{Grey|[[GRUB Legacy]]}}<br />
| {{Yes}} || {{No}}<br />
| {{Yes}} || {{No}}<br />
| {{Yes}}<br />
| {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{Y|XFS v4 only}}<br />
| [https://www.gnu.org/software/grub/grub-legacy.html廃止] [[GRUB]] を支持<br />
|-<br />
! {{Grey|[[LILO]]}}<br />
| {{Yes}} || {{No}}<br />
| {{Yes}} || {{No}}<br />
| {{Yes}}<br />
| {{No}} || {{Y|Without encryption}} || {{Yes}} || {{Yes}} || {{Yes|http://xfs.org/index.php/XFS_FAQ#Q:_Does_LILO_work_with_XFS.3F}}<br />
| [https://web.archive.org/web/20180323163248/http://lilo.alioth.debian.org/ 廃止] 制限による (Btrfs、GPT、RAIDなど)<br />
|}<br />
<br />
# ファイルシステムのサポートはファームウェアから継承されます。 UEFI 仕様では、FAT12、FAT16、および FAT32 ファイルシステムのサポートが義務付けられていますが、ベンダーはオプションで追加のファイルシステムのサポートを追加できます。[https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf#G17.1345080] たとえば、Apple [[Mac]] のファームウェアは HFS+ ファイルシステムをサポートしています。 ファームウェアが起動時に [[Unified Extensible Firmware Interface#UEFIドライバー| UEFIドライバー]] をロードするためのインターフェースを提供する場合、ファイルシステムドライバーを(個別に取得して)ロードすることにより、追加のファイルシステムのサポートを追加できます。<br />
#A [https://www.rodsbooks.com/efi-bootloaders/principles.html boot manager] 他の EFI アプリケーション、たとえば {{ic | 1 = CONFIG_EFI_STUB = y}} および Windows {{ic|bootmgfw.efi}} で構築された Linux カーネルイメージのみを起動できます。<br />
<br />
[[Wikipedia:Comparison of boot loaders]] も参照してください。<br />
<br />
== カーネル ==<br />
カーネルはオペレーティングシステムのコアです。ローレベル (''カーネル空間'') で、マシンのハードウェアとハードウェアを使って実行されるプログラムを橋渡しします。CPU を効率的に利用するために、カーネルはスケジューラーを使ってどのタスクが優先的に実行されるかを決定し、多くのタスクが同時に実行されるのを可能にしています。<br />
<br />
== initramfs ==<br />
カーネルがロードされた後、カーネルは [[mkinitcpio|initramfs]] (initial RAM ファイルシステム) を解凍して、initial root ファイルシステムにします。カーネルは最初のプロセスとして {{ic|/init}} を起動します。''初期ユーザー空間''の始まりです。<br />
<br />
initramfs の目的は root ファイルシステムにアクセスできる位置にシステムをブートストラップすることです (詳しくは [[FHS]] を見て下さい)。これは IDE, SCSI, SATA, USB/FW (外部ハードウェアから起動する場合) などのデバイスのために必要なモジュールがカーネルに入っていない場合 initramfs からモジュールをロードできなくてはならないということを意味しています; (プログラムやスクリプトから明示的に指定されるか [[udev|udev]] を通すかして) 正しいモジュールがロードされると、ブートプロセスが再開されます。従って、initramfs に含めなくてはならないのは root ファイルシステムにアクセスするために必要なモジュールだけで、使用する全てのモジュールを入れる必要はありません。ほとんどのモジュールは後の init プロセス中に、udev によってロードされます。<br />
<br />
== Init プロセス ==<br />
<br />
初期ユーザー空間の最終段階として、本当の root がマウントされ、initial root ファイルシステムを置き換えます。{{ic|/sbin/init}} が実行され、{{ic|/init}} プロセスを置き換えます。Arch は init プロセスとして [[systemd|systemd]] を使っています。<br />
<br />
== getty ==<br />
[[init]] は [[Wikipedia:Virtual console|virtual terminal]] (典型的には6つ) ごとに [[getty]] を1回呼び出し、各ttyを初期化してユーザ名とパスワードを要求します。ユーザ名とパスワードが与えられると、getty はそれらを {{ic|/etc/passwd}} と {{ic|/etc/shadow}} と照合し、 [[#Login|login]] を呼び出します。あるいは、システム上にディスプレイマネージャがあれば、getty はそれを起動します。<br />
<br />
== ディスプレイマネージャ ==<br />
<br />
[[ディスプレイマネージャ]] は、tty の getty ログインプロンプトを置き換えるように設定できます。<br />
<br />
起動後にディスプレイマネージャを自動的に初期化するには、 [[systemd]] からサービスユニットを手動で有効にする必要があります。サービス・ユニットの有効化と起動の詳細は、[[systemd#ユニットを使う]] を参照してください。<br />
<br />
== ログイン ==<br />
<br />
''ログイン'' プログラムは、環境変数を設定し、{{ic|/etc/passwd}} に基づいてユーザーのシェルを起動することによって、ユーザーのセッションを開始します。<br />
<br />
''ログイン'' プログラムは、ログインに成功するとログインシェルを実行する直前に [[Wikipedia:motd (Unix) |/etc/motd]] (message of the day) の内容を表示します。利用規約を表示してユーザーに地域のポリシーや伝えたいことを思い出させるのに適した場所です。<br />
<br />
== シェル ==<br />
<br />
ユーザーの [[シェル]] が起動されると、通常はユーザーにプロンプトを表示する前に [[bashrc]] などの実行時構成ファイルが実行されます。アカウントが [[%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E6%99%82%E3%81%AB_X_%E3%82%92%E8%B5%B7%E5%8B%95]] に設定されている場合、実行時設定ファイルは [[startx]] または [[xinit]] を呼び出します。<br />
<br />
== GUI, xinit or wayland ==<br />
<br />
[[xinit]] はユーザの [[xinitrc]] runtime configuration fileを実行しこれは通常 [[ウィンドウマネージャ]] を開始します。ユーザがウィンドウマネージャを終了すると、''xinit''、 ''startx''、 シェル、 ログイン、の順序で終了して [[#getty|getty]] に戻ります。<br />
<br />
== 参照 ==<br />
* [http://archlinux.me/brain0/2010/02/13/early-userspace-in-arch-linux/ Early Userspace in Arch Linux]<br />
* [https://www.ibm.com/developerworks/linux/library/l-linuxboot/ Inside the Linux boot process]<br />
* [https://www.linuxjournal.com/article/4622 Boot with GRUB]<br />
* [[Wikipedia:Linux startup process]]<br />
* [[Wikipedia:ja:initrd]]<br />
* [http://www.cyberciti.biz/faq/grub-boot-into-single-user-mode/ Boot Linux Grub Into Single User Mode]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Sway&diff=18143
Sway
2020-11-03T16:42:01Z
<p>Hiromi-mi: /* キーのオートリピート設定 */ en:Sway 版 639731 に追従</p>
<hr />
<div>[[Category:タイル型ウィンドウマネージャ]]<br />
[[Category:動的ウィンドウマネージャ]]<br />
[[en:Sway]]<br />
''sway'' (SirCmpwn's Wayland window manager) は [[i3]] と互換性のある [[Wayland]] コンポジタを作成しようという試みです。[http://swaywm.org 公式ウェブサイト] より:<br />
:Sway は Wayland において Xorg の i3 ウィンドウマネージャの代わりとなるウィンドウマネージャです。既存の i3 設定で動作し i3 の機能のほとんどをサポートしています。<br />
<br />
== 現状 ==<br />
[https://github.com/swaywm/sway/releases/tag/1.0 Release sway 1.0] にあるように、Sway は基本的に100% i3 と互換です。実装された機能と、実装されていない機能については以下のリンクを参照してください:<br />
*[https://github.com/SirCmpwn/sway/issues/2#issue-99897933 i3 の機能のサポート]<br />
*[https://github.com/SirCmpwn/sway/issues/98 IPC 機能のサポート]<br />
*[https://github.com/SirCmpwn/sway/issues/343 i3bar の互換性]<br />
*[https://github.com/SirCmpwn/sway/issues/307 Airblader のフォークの機能]<br />
<br />
== インストール ==<br />
<br />
''sway'' は {{Pkg|sway}} パッケージで[[インストール]]できます。最新の開発版は {{AUR|wlroots-git}} と {{AUR|sway-git}} でインストールできます。''sway'' は ''wlroots'' に緻密に依存しているので、''sway'' 更新時には ''wlroots'' も更新するのが望ましいです。<br />
<br />
また、画面をロックする {{Pkg|swaylock}} や、アイドル時間管理デーモンの {{Pkg|swayidle}} もインストールできます。<br />
<br />
デフォルトのアプリケーションランチャーは {{Pkg|dmenu}} であり、ターミナルエミュレータは {{Pkg|alacritty}} です。インストールするか、あるいは設定ファイルで別のアプリケーションに変更するかを、初回起動の前に行なうことが望ましいです。<br />
<br />
== sway の起動 ==<br />
<br />
{{Tip|ウィンドウ装飾ライブラリなど設定する必要がある環境変数については [[Wayland#GUI ライブラリ]]を参照。}}<br />
<br />
=== ターミナルから ===<br />
ターミナルに {{ic|sway}} と入力すれば sway が起動します。<br />
<br />
=== ディスプレイマネージャを使う ===<br />
{{Note|Sway は公式にはディスプレイマネージャをサポートしていません。}}<br />
sway のセッションは {{ic|/usr/share/wayland-sessions/sway.desktop}} にあります。[[GDM]] や [[SDDM]] などのディスプレイマネージャは自動的にセッションを認識します。<br />
<br />
あるいは、テキストベースのセッションマネージャを使うこともできます。[[ディスプレイマネージャ#コンソール]]を参照してください。<br />
<br />
== 設定 ==<br />
i3 を既に使っている場合、i3 の設定を {{ic|~/.config/sway/config}} にコピーすればそのまま動作します。i3 を使ったことがない場合は、サンプル設定ファイルを {{ic|~/.config/sway/config}} にコピーしてください。サンプル設定ファイルは {{ic|/etc/sway/config}} にあります。ただし {{ic|DFALLBACK_CONFIG_DIR}} フラグが設定されている場合は存在しません。設定方法は {{man|5|sway}} を見てください。<br />
<br />
=== キーマップ ===<br />
デフォルトでは、sway は US QWERTY キーマップで起動します。キーマップを書き換えるには:<br />
{{hc|~/.config/sway/config|<br />
input * {<br />
xkb_layout "us,de,ru"<br />
xkb_variant "colemak,,typewriter"<br />
xkb_options "grp:win_space_toggle"<br />
}<br />
<br />
input <identifier> xkb_model "pc101"<br />
}}<br />
<br />
なお、Sway は起動時に {{ic|XKB_DEFAULT_LAYOUT}} や {{ic|XKB_DEFAULT_VARIANT}} などの[[環境変数]]を読み込みますが、環境変数よりも設定ファイルの内容が優先されます。<br />
<br />
詳細は {{man|5|sway-input}} および {{man|7|xkeyboard-config}} を参照してください。<br />
<br />
=== キーのオートリピート設定 ===<br />
Typematic Delay (オートリピート開始までの時間) と Typematic Rate (1秒間のリピート回数) は、{{ic|input}} セクションに以下の行を加えると変更できます。設定項目について詳しくは[[コンソールでのキーボード設定#typematic delay と rate の調整]]を参照してください。<br />
<br />
{{hc|~/.config/sway/config|<br />
input <identifier> repeat_delay 300<br />
input <identifier> repeat_rate 30<br />
}}<br />
<br />
=== ステータスバー ===<br />
ステータスバーを表示したいときは {{Pkg|i3status}} プログラムをインストールするのが簡単です。sway の設定の末尾に以下のスニペットを追加するだけで表示できます:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bar {<br />
status_command i3status<br />
}</nowiki>}}<br />
i3status をカラー出力させたい場合、i3status の設定の以下の部分を調整してください:<br />
{{hc|~/.config/i3status/config|<nowiki><br />
general {<br />
colors = true<br />
interval = 5<br />
}<br />
</nowiki>}}<br />
どちらの例でも、システム全体にインストールされた設定ファイルはユーザーディレクトリにコピーされるので、それを修正してください。<br />
<br />
=== 壁紙 ===<br />
Sway 1.1 以降、壁紙機能は {{Pkg|swaybg}} に分割され、{{ic|output}} コマンドを動作させるのに必要です。<br />
<br />
以下の行を sway の設定の最後に追加することで、全ての画面 ({{ic|"*"}} という名前にマッチする画面) で背景画像を設定できます:<br />
{{hc|~/.config/sway/config|<nowiki><br />
output "*" background /path/to/image.jpg fill<br />
</nowiki>}}<br />
ファイルの名前やパスは適当に置き換えて下さい。<br />
<br />
また、背景は単一色にもできます:<br />
{{bc|output * bg #000000 solid_color}}<br />
<br />
{{Note|{{Pkg|swaybg}} コマンドの GTK3 フロントエンドに {{AUR|azote}} があります。}}<br />
<br />
=== 入力デバイス ===<br />
特定の入力デバイスの設定を調整することができます。例えば、タッチパッドの tap-to-click とナチュナルスクロールを有効にするには、以下の input ブロックを追加:<br />
{{hc|~/.config/sway/config|<nowiki><br />
input "2:14:ETPS/2_Elantech_Touchpad" {<br />
tap enabled<br />
natural_scroll enabled<br />
}<br />
</nowiki>}}<br />
デバイスの識別子は以下のコマンドで確認できます:<br />
$ swaymsg -t get_inputs<br />
上記のコマンドの出力には、"/" などの記号をエスケープするために "\" が付いていることがあります (例: {{ic|"2:14:ETPS\/2_Elantech_Touchpad"}})。設定に追加するときはエスケープを取り除いてください。<br />
<br />
アクセラレーションなど他のオプションについては {{man|5|sway-input}} で詳細を確認できます。<br />
<br />
=== HiDPI ===<br />
<br />
設定ファイルの {{ic|output}} コマンドでディスプレイのスケールファクタを設定してください。スケールファクタは小数でも指定できます。HiDPI ディスプレイの場合は 2 などに設定してください。<br />
output <name> scale <factor><br />
ディスプレイの名前は以下のコマンドで確認できます:<br />
$ swaymsg -t get_outputs<br />
<br />
=== カスタムキーバインド ===<br />
キーボードの[[特別なキーボードキー|特殊なキー]]を使ってコマンドを実行することができます。例えば、ボリュームや画面の明るさを制御するには:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') +5%<br />
bindsym XF86AudioLowerVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') -5%<br />
bindsym XF86AudioMute exec pactl set-sink-mute $(pacmd list-sinks |awk '/* index:/{print $3}') toggle<br />
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-<br />
bindsym XF86MonBrightnessUp exec brightnessctl set +5%<br />
</nowiki>}}<br />
<br />
{{Pkg|brightnessctl}} を使うことで輝度を制御できます。輝度や色補正を制御するユーティリティについては[[バックライト]]を見てください。<br />
<br />
=== .Xresources ===<br />
<br />
sway で使用するには {{ic|.Xresources}} を {{ic|.Xdefaults}} にコピーしてください。<br />
<br />
=== XWayland ===<br />
"cannot open display" というエラーでプログラムが起動しない場合、X上で動作するプログラムであることが考えられます。XWayland 互換レイヤーを使うと Wayland 上で動作させられます。{{Pkg|xorg-server-wayland}} パッケージをインストールしてください。<br />
<br />
一方、XWayland を無効化し、Sway の純粋な Wayland セッションを使うには次のようにします:<br />
{{hc|~/.config/sway/config|<br />
xwayland disable<br />
}}<br />
{{Note|アプリケーションによっては[[Wayland#GUI ライブラリ|設定]]が Wayland ネイティブで動作させることが必要な場合や、大抵のプロプライエタリなアプリケーションなどでは全く Wayland に対応していないことがあります。今のところそのようなアプリケーションが使えるように XWayland は無効化しないことが推奨されます。}}<br />
<br />
== ヒントとテクニック ==<br />
<br />
=== ログイン時に自動起動 ===<br />
<br />
tty1 にログインしたときに起動するには、以下を {{ic|.bash_profile}} に追加してください:<br />
<br />
<nowiki>if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then<br />
exec sway<br />
fi</nowiki><br />
<br />
=== dmenu 代替 ===<br />
<br />
[[dmenu]] は XWayland 上で動作するため、フォーカスが他のところへ移るとアプリケーションは反応しなくなります。反応しなくなった dmenu を元に戻すには sway を再起動する必要があります。[[rofi]] を使用するという案もありますが、rofi をメニューとして使用するには、urxvt など wayland ネイティブではない仮想端末から起動しなくてはなりません。Sway でメニューとして起動してもメニューにフォーカスが移りません (rofi にマウスを載せないと入力が通りません)。詳しくは https://github.com/swaywm/sway/issues/1367#issuecomment-332910152 を参照。<br />
<br />
== 既知の問題 ==<br />
<br />
=== 仮想環境で使う ===<br />
<br />
Sway は [[VirtualBox]] や [[VMware]] ESXi 上でも動作するものの、場合によっては設定が必要です。<br />
<br />
==== Sway を tty から起動できない ====<br />
<br />
3D アクセラレーションを有効にする必要があります。[[VMware#Intel と Optimus で 3D グラフィックを有効化]] を参照してください。<br />
<br />
==== マウスカーソルが表示されない ====<br />
<br />
VMSVGA グラフィックコントローラーを使うとカーソルが表示されません。Sway 起動時に {{ic|WLR_NO_HARDWARE_CURSORS}} 変数を設定すると解決します。詳細は [https://github.com/swaywm/sway/issues/3814] を参照してください。<br />
<br />
=== Sway Socket Not Detected ===<br />
<br />
ターミナルマルチプレクサ (例: GNU Screen や tmux) の中で {{ic|swaymsg -t get_outputs}} などのように {{ic|swaymsg}} を使ったときに、以下のようなメッセージが返ってくることがあります:<br />
sway socket not detected.<br />
ERROR: Unable to connect to<br />
これは {{ic|swaymsg}} が {{ic|SWAYSOCK}} のソケットに接続できないことを意味しています。<br />
<br />
{{ic|SWAYSOCK}} の現在の値を確認するには:<br />
$ env | fgrep SWAYSOCK<br />
SWAYSOCK=/run/user/1000/sway-ipc.1000.4981.sock<br />
<br />
最初の sway ソケットにアタッチしてみて、コマンドを再実行してみてください:<br />
$ export SWAYSOCK=$(ls /run/user/*/sway-ipc.*.sock | head -n 1)<br />
<br />
上記のエラーを解決するには、マルチプレクサの外でコマンドを実行する必要があります。<br />
<br />
=== Unable to retrieve socket path ===<br />
<br />
tty から {{ic|swaymsg -t}} を実行すると、<br />
Unable to retrieve socket path<br />
というメッセージが表示されます。これは {{ic|SWAYLOCK}} 環境変数が Sway 起動後に設定されるためで、{{ic|swaymsg}} は Sway 内のターミナルで実行してください。<br />
<br />
=== ディスプレイの解像度が正しくない ===<br />
<br />
{{ic|output "HDMI-A-1" res 1280x1024}} などの設定オプションで解像度が正しく設定できない場合があります。解像度の設定は {{Pkg|wlc}} コンポジタが受け持っており、TTY からディスプレイの解像度を認識します。<br />
<br />
{{ic|1=video=HDMI-A-1:1280x1024:e}} などのカーネルパラメータを指定したりカスタム EDID バイナリ ([[Kernel Mode Setting]] を参照) を使用することで TTY の解像度を変えられる場合があります (WLC や Sway の解像度も変わります)。<br />
<br />
== 参照 ==<br />
<br />
* [https://github.com/SirCmpwn/sway Github プロジェクト]<br />
* [http://swaywm.org ウェブサイト]</div>
Hiromi-mi
https://wiki.archlinux.jp/index.php?title=Sway&diff=18142
Sway
2020-11-03T16:32:01Z
<p>Hiromi-mi: /* XWayland */ en:Sway 版 639731 に追従</p>
<hr />
<div>[[Category:タイル型ウィンドウマネージャ]]<br />
[[Category:動的ウィンドウマネージャ]]<br />
[[en:Sway]]<br />
''sway'' (SirCmpwn's Wayland window manager) は [[i3]] と互換性のある [[Wayland]] コンポジタを作成しようという試みです。[http://swaywm.org 公式ウェブサイト] より:<br />
:Sway は Wayland において Xorg の i3 ウィンドウマネージャの代わりとなるウィンドウマネージャです。既存の i3 設定で動作し i3 の機能のほとんどをサポートしています。<br />
<br />
== 現状 ==<br />
[https://github.com/swaywm/sway/releases/tag/1.0 Release sway 1.0] にあるように、Sway は基本的に100% i3 と互換です。実装された機能と、実装されていない機能については以下のリンクを参照してください:<br />
*[https://github.com/SirCmpwn/sway/issues/2#issue-99897933 i3 の機能のサポート]<br />
*[https://github.com/SirCmpwn/sway/issues/98 IPC 機能のサポート]<br />
*[https://github.com/SirCmpwn/sway/issues/343 i3bar の互換性]<br />
*[https://github.com/SirCmpwn/sway/issues/307 Airblader のフォークの機能]<br />
<br />
== インストール ==<br />
<br />
''sway'' は {{Pkg|sway}} パッケージで[[インストール]]できます。最新の開発版は {{AUR|wlroots-git}} と {{AUR|sway-git}} でインストールできます。''sway'' は ''wlroots'' に緻密に依存しているので、''sway'' 更新時には ''wlroots'' も更新するのが望ましいです。<br />
<br />
また、画面をロックする {{Pkg|swaylock}} や、アイドル時間管理デーモンの {{Pkg|swayidle}} もインストールできます。<br />
<br />
デフォルトのアプリケーションランチャーは {{Pkg|dmenu}} であり、ターミナルエミュレータは {{Pkg|alacritty}} です。インストールするか、あるいは設定ファイルで別のアプリケーションに変更するかを、初回起動の前に行なうことが望ましいです。<br />
<br />
== sway の起動 ==<br />
<br />
{{Tip|ウィンドウ装飾ライブラリなど設定する必要がある環境変数については [[Wayland#GUI ライブラリ]]を参照。}}<br />
<br />
=== ターミナルから ===<br />
ターミナルに {{ic|sway}} と入力すれば sway が起動します。<br />
<br />
=== ディスプレイマネージャを使う ===<br />
{{Note|Sway は公式にはディスプレイマネージャをサポートしていません。}}<br />
sway のセッションは {{ic|/usr/share/wayland-sessions/sway.desktop}} にあります。[[GDM]] や [[SDDM]] などのディスプレイマネージャは自動的にセッションを認識します。<br />
<br />
あるいは、テキストベースのセッションマネージャを使うこともできます。[[ディスプレイマネージャ#コンソール]]を参照してください。<br />
<br />
== 設定 ==<br />
i3 を既に使っている場合、i3 の設定を {{ic|~/.config/sway/config}} にコピーすればそのまま動作します。i3 を使ったことがない場合は、サンプル設定ファイルを {{ic|~/.config/sway/config}} にコピーしてください。サンプル設定ファイルは {{ic|/etc/sway/config}} にあります。ただし {{ic|DFALLBACK_CONFIG_DIR}} フラグが設定されている場合は存在しません。設定方法は {{man|5|sway}} を見てください。<br />
<br />
=== キーマップ ===<br />
デフォルトでは、sway は US QWERTY キーマップで起動します。キーマップを書き換えるには:<br />
{{hc|~/.config/sway/config|<br />
input * {<br />
xkb_layout "us,de,ru"<br />
xkb_variant "colemak,,typewriter"<br />
xkb_options "grp:win_space_toggle"<br />
}<br />
<br />
input <identifier> xkb_model "pc101"<br />
}}<br />
<br />
なお、Sway は起動時に {{ic|XKB_DEFAULT_LAYOUT}} や {{ic|XKB_DEFAULT_VARIANT}} などの[[環境変数]]を読み込みますが、環境変数よりも設定ファイルの内容が優先されます。<br />
<br />
詳細は {{man|5|sway-input}} および {{man|7|xkeyboard-config}} を参照してください。<br />
<br />
=== ステータスバー ===<br />
ステータスバーを表示したいときは {{Pkg|i3status}} プログラムをインストールするのが簡単です。sway の設定の末尾に以下のスニペットを追加するだけで表示できます:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bar {<br />
status_command i3status<br />
}</nowiki>}}<br />
i3status をカラー出力させたい場合、i3status の設定の以下の部分を調整してください:<br />
{{hc|~/.config/i3status/config|<nowiki><br />
general {<br />
colors = true<br />
interval = 5<br />
}<br />
</nowiki>}}<br />
どちらの例でも、システム全体にインストールされた設定ファイルはユーザーディレクトリにコピーされるので、それを修正してください。<br />
<br />
=== 壁紙 ===<br />
Sway 1.1 以降、壁紙機能は {{Pkg|swaybg}} に分割され、{{ic|output}} コマンドを動作させるのに必要です。<br />
<br />
以下の行を sway の設定の最後に追加することで、全ての画面 ({{ic|"*"}} という名前にマッチする画面) で背景画像を設定できます:<br />
{{hc|~/.config/sway/config|<nowiki><br />
output "*" background /path/to/image.jpg fill<br />
</nowiki>}}<br />
ファイルの名前やパスは適当に置き換えて下さい。<br />
<br />
また、背景は単一色にもできます:<br />
{{bc|output * bg #000000 solid_color}}<br />
<br />
{{Note|{{Pkg|swaybg}} コマンドの GTK3 フロントエンドに {{AUR|azote}} があります。}}<br />
<br />
=== 入力デバイス ===<br />
特定の入力デバイスの設定を調整することができます。例えば、タッチパッドの tap-to-click とナチュナルスクロールを有効にするには、以下の input ブロックを追加:<br />
{{hc|~/.config/sway/config|<nowiki><br />
input "2:14:ETPS/2_Elantech_Touchpad" {<br />
tap enabled<br />
natural_scroll enabled<br />
}<br />
</nowiki>}}<br />
デバイスの識別子は以下のコマンドで確認できます:<br />
$ swaymsg -t get_inputs<br />
上記のコマンドの出力には、"/" などの記号をエスケープするために "\" が付いていることがあります (例: {{ic|"2:14:ETPS\/2_Elantech_Touchpad"}})。設定に追加するときはエスケープを取り除いてください。<br />
<br />
アクセラレーションなど他のオプションについては {{man|5|sway-input}} で詳細を確認できます。<br />
<br />
=== HiDPI ===<br />
<br />
設定ファイルの {{ic|output}} コマンドでディスプレイのスケールファクタを設定してください。スケールファクタは小数でも指定できます。HiDPI ディスプレイの場合は 2 などに設定してください。<br />
output <name> scale <factor><br />
ディスプレイの名前は以下のコマンドで確認できます:<br />
$ swaymsg -t get_outputs<br />
<br />
=== カスタムキーバインド ===<br />
キーボードの[[特別なキーボードキー|特殊なキー]]を使ってコマンドを実行することができます。例えば、ボリュームや画面の明るさを制御するには:<br />
{{hc|~/.config/sway/config|<nowiki><br />
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') +5%<br />
bindsym XF86AudioLowerVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') -5%<br />
bindsym XF86AudioMute exec pactl set-sink-mute $(pacmd list-sinks |awk '/* index:/{print $3}') toggle<br />
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-<br />
bindsym XF86MonBrightnessUp exec brightnessctl set +5%<br />
</nowiki>}}<br />
<br />
{{Pkg|brightnessctl}} を使うことで輝度を制御できます。輝度や色補正を制御するユーティリティについては[[バックライト]]を見てください。<br />
<br />
=== .Xresources ===<br />
<br />
sway で使用するには {{ic|.Xresources}} を {{ic|.Xdefaults}} にコピーしてください。<br />
<br />
=== XWayland ===<br />
"cannot open display" というエラーでプログラムが起動しない場合、X上で動作するプログラムであることが考えられます。XWayland 互換レイヤーを使うと Wayland 上で動作させられます。{{Pkg|xorg-server-wayland}} パッケージをインストールしてください。<br />
<br />
一方、XWayland を無効化し、Sway の純粋な Wayland セッションを使うには次のようにします:<br />
{{hc|~/.config/sway/config|<br />
xwayland disable<br />
}}<br />
{{Note|アプリケーションによっては[[Wayland#GUI ライブラリ|設定]]が Wayland ネイティブで動作させることが必要な場合や、大抵のプロプライエタリなアプリケーションなどでは全く Wayland に対応していないことがあります。今のところそのようなアプリケーションが使えるように XWayland は無効化しないことが推奨されます。}}<br />
<br />
== ヒントとテクニック ==<br />
<br />
=== ログイン時に自動起動 ===<br />
<br />
tty1 にログインしたときに起動するには、以下を {{ic|.bash_profile}} に追加してください:<br />
<br />
<nowiki>if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then<br />
exec sway<br />
fi</nowiki><br />
<br />
=== dmenu 代替 ===<br />
<br />
[[dmenu]] は XWayland 上で動作するため、フォーカスが他のところへ移るとアプリケーションは反応しなくなります。反応しなくなった dmenu を元に戻すには sway を再起動する必要があります。[[rofi]] を使用するという案もありますが、rofi をメニューとして使用するには、urxvt など wayland ネイティブではない仮想端末から起動しなくてはなりません。Sway でメニューとして起動してもメニューにフォーカスが移りません (rofi にマウスを載せないと入力が通りません)。詳しくは https://github.com/swaywm/sway/issues/1367#issuecomment-332910152 を参照。<br />
<br />
== 既知の問題 ==<br />
<br />
=== 仮想環境で使う ===<br />
<br />
Sway は [[VirtualBox]] や [[VMware]] ESXi 上でも動作するものの、場合によっては設定が必要です。<br />
<br />
==== Sway を tty から起動できない ====<br />
<br />
3D アクセラレーションを有効にする必要があります。[[VMware#Intel と Optimus で 3D グラフィックを有効化]] を参照してください。<br />
<br />
==== マウスカーソルが表示されない ====<br />
<br />
VMSVGA グラフィックコントローラーを使うとカーソルが表示されません。Sway 起動時に {{ic|WLR_NO_HARDWARE_CURSORS}} 変数を設定すると解決します。詳細は [https://github.com/swaywm/sway/issues/3814] を参照してください。<br />
<br />
=== Sway Socket Not Detected ===<br />
<br />
ターミナルマルチプレクサ (例: GNU Screen や tmux) の中で {{ic|swaymsg -t get_outputs}} などのように {{ic|swaymsg}} を使ったときに、以下のようなメッセージが返ってくることがあります:<br />
sway socket not detected.<br />
ERROR: Unable to connect to<br />
これは {{ic|swaymsg}} が {{ic|SWAYSOCK}} のソケットに接続できないことを意味しています。<br />
<br />
{{ic|SWAYSOCK}} の現在の値を確認するには:<br />
$ env | fgrep SWAYSOCK<br />
SWAYSOCK=/run/user/1000/sway-ipc.1000.4981.sock<br />
<br />
最初の sway ソケットにアタッチしてみて、コマンドを再実行してみてください:<br />
$ export SWAYSOCK=$(ls /run/user/*/sway-ipc.*.sock | head -n 1)<br />
<br />
上記のエラーを解決するには、マルチプレクサの外でコマンドを実行する必要があります。<br />
<br />
=== Unable to retrieve socket path ===<br />
<br />
tty から {{ic|swaymsg -t}} を実行すると、<br />
Unable to retrieve socket path<br />
というメッセージが表示されます。これは {{ic|SWAYLOCK}} 環境変数が Sway 起動後に設定されるためで、{{ic|swaymsg}} は Sway 内のターミナルで実行してください。<br />
<br />
=== ディスプレイの解像度が正しくない ===<br />
<br />
{{ic|output "HDMI-A-1" res 1280x1024}} などの設定オプションで解像度が正しく設定できない場合があります。解像度の設定は {{Pkg|wlc}} コンポジタが受け持っており、TTY からディスプレイの解像度を認識します。<br />
<br />
{{ic|1=video=HDMI-A-1:1280x1024:e}} などのカーネルパラメータを指定したりカスタム EDID バイナリ ([[Kernel Mode Setting]] を参照) を使用することで TTY の解像度を変えられる場合があります (WLC や Sway の解像度も変わります)。<br />
<br />
== 参照 ==<br />
<br />
* [https://github.com/SirCmpwn/sway Github プロジェクト]<br />
* [http://swaywm.org ウェブサイト]</div>
Hiromi-mi