私のPackard-Bellノートブックキーボードには、ナビゲーション矢印でグループ化され、従来の逆T字形の代わりに2行×3列のサブブロックを形成する2つの非標準キーがあります。もちろん、デフォルトのLinuxカーネルはこれらのキーを認識しません。
setkeycodes
rootコマンドを使用して有効にできますloadkeys
。
手動起動コマンドを回避するために、起動中にキーボードを構成するsystemdデバイス(.serviceファイル)を設計しました。
この方法は、最近非常に古いFedoraバージョンからFedora 35にノートブックをアップグレードするまでうまく機能しました。
これで、変更したいすべてのマップで「キーマップx:権限が拒否されました」というメッセージが表示されます。理由がわからない。
私が間違っていない限り、システムのシステムサービスから開始されたすべてのコマンドはrootとして実行されます。したがって、ロードキーはすべてのファイルにアクセスできる必要があり(「ファイルまたはディレクトリなし」エラーを修正するためにマッピングファイルをユーザーディレクトリから/ etcに移動する必要があります)、コンソールマッピングを変更できる必要があります。
可能な競合状態が心配され、multi-user.targetに到達した後(一定時間ではなく)サービスが開始されるように依存関係を変更し、各パーティションがマウントされて準備が整ったと確信しています。しかし、これはエラーを解決できませんでした。
id
私のサービスは、許可されていない一部のユーザーの下で実行されていると思われますが、どのユーザーかを推測することはできません(コマンドがシェルで解釈されないため、またはコマンドを使用できず、whoami
後で出力を一部のファイルにリダイレクトできません)。使用)。
Manは、そのユニットがすでにルートによって所有されているため、User =またはGroup =を追加することは役に立たないと言います。
アップデート:サービスがroot
。キーマップx:権限が拒否されました。無意味。 viaの代わりにrootとして直接コマンドを実行すると正常にsystemctl
動作loadkeys
します。
だから何?私に方向を教えてもらえますか?
答え1
ユーザー:
$ localectl set-keymap 'YourKeyboardMapName"
selinuxなら、
根:
# /sbin/restorecon -v /.hcwd (to avoid selinux complaints)