linux-kernel

文字を入力するためにinput_report_key()を使用しないキーボードドライバ
linux-kernel

文字を入力するためにinput_report_key()を使用しないキーボードドライバ

Linux入力デバイスドライバを作成し、既存のドライバにあるものをテストしようとしています。GPIOマトリックスキーボードドライバー。 printを使用すると、正しいキーコードで呼び出されることがわかりますが、カーソルinput_report_key()の下に正しい文字が配置されません。 pr_info("Print: %d\n", keycodes[code]); input_report_key(input_dev, keycodes[code], new_state[col] & (1 << row)); 私も仕事用にBeagle...

Admin

保存されたUID / GIDを表示するためのFUSEファイルシステム?
linux-kernel

保存されたUID / GIDを表示するためのFUSEファイルシステム?

通常のユーザーとしてプログラムを起動し、ルートとしてプログラムを開始する前に、いくつかの構成を読み取るプログラムを作成しようとしたときに、この奇妙な動作が見つかりました。他の場所では言及が見つからないようです。通常のファイルシステムはアクセス確認に有効なUID / GIDを使用しますが、FUSEはアクセスに有効で実際で保存されている(!!)3つのUID / GIDをすべて確認しているようです。最初は、後で復元できるように有効なuidを削除しましたが、何が起こっているのかがわかるまで権限エラーが発生し続けました。 なぜそのような状況がありますか? FUSEが保...

Admin

Linux DRM/KMS 学習資料
linux-kernel

Linux DRM/KMS 学習資料

LinuxのDRMおよびKMSサブシステムがどのように機能するか、それを使用してプログラムする方法など、内部的にどのように機能するかをより深く理解したいと思います。最初は、単純なレンダリングなどのいくつかのKMSエントリだけがあれば良いでしょう。また、時間の経過とともに、DRMの計算部分を使用してGPUでいくつかの並列処理を実行することもできます。 MANページのドキュメントが非常に不完全で、kernel.orgのドキュメントがガイドではなく参照用に近いので、DRM / KMSサブシステムの完全な詳細な説明がどこにあるかを尋ねたいと思います。 とても感謝して...

Admin

dindの基本メカニズム(dockerのdocker)
linux-kernel

dindの基本メカニズム(dockerのdocker)

私はDinDが単にホストドッカーデーモンを使用するためのトリックであるという印象を受けましたが、最近これは本当ではなく、実際には入れ子になったコンテナ化という内容を読んでいました。 私はそのメカニズム、つまりLinuxがネームスペース、cgroupボリューム、およびネットワーキングの観点から階層を管理する方法に興味があります。どのシステムコールも関連しています。 よろしくお願いします:) ...

Admin

Fedoraアップグレード後のUSBサブシステムのクラッシュ
linux-kernel

Fedoraアップグレード後のUSBサブシステムのクラッシュ

特定のホストのUSBサブシステムと競合する特定のデバイスがあります。同じパッチレベルを使用して同じシステムに接続すると、デバイスがクラッシュしません。他の USB デバイスは障害が発生したホストで正常に動作します。ログを確認したところ、NULLポインタの逆参照によってカーネルスレッドがクラッシュしたことがわかりました。このエラーは、USBサブシステムでエラー71が発生してアクティブになっているようです。以前にカーネルをデバッグしたことがないので、どこから始めるべきかについての案内を受けたいと思います。関連するジャーナル項目は次のとおりです。 Apr 24 1...

Admin

Ubuntu Server 22.04、5.15では、リアルタイムデバッグRCUが停止します。
linux-kernel

Ubuntu Server 22.04、5.15では、リアルタイムデバッグRCUが停止します。

AMD EPYC 8534PN(64C/128T)からCPUを取り外そうとしています。残念ながら、RCUが動作を停止し、サーバーがクラッシュすることを何度も目撃しました。何が間違っているのかわかりません。 競合は、サーバーに負荷がかかる場合にのみ発生します。通常、私はそこでビルドタスクを実行し、RT優先順位のあるタスク(統合テスト)を実行します。しかし、私が理解しているように、rcu_nocbs=8-63,72-127 irqaffinity=0-7,64-71 rcu_nocb_pollgrub を使用して設定し、IRQBALANCE_BANNED_CPU...

Admin

既存のデバイスノードに文字ドライバをロードできますか?
linux-kernel

既存のデバイスノードに文字ドライバをロードできますか?

私はLinuxカーネルドライバのプログラミングを探しています。そして、次のようなアイデアを得ました。 既存のデバイスノードに文字ドライバをロードできますか(デバイスノードはmknodを使用して作成された可能性があります)。 #1をさらに拡張するには、キャラクタドライバがデバイスノードを作成し、他のキャラクタドライバがノードのメジャー/マイナー番号を使用して生成されたデバイスノードに登録してロードするために使用されるデバイスノードを作成できますか? すでに使用されている例はありますか? ...

Admin

カーネル5.xでnf_conntrack_xxxのハッシュサイズを設定する
linux-kernel

カーネル5.xでnf_conntrack_xxxのハッシュサイズを設定する

カーネル4.xを実行している私のシステムでは、nf_conntrack3つのモジュールをロードします。ハッシュテーブルのデフォルトサイズより大きいパラメータを使用してmodprobeのみが実行されます。nf_conntrack_ipv4nf_conntrack_ipv6nf_conntrack_ipv4hashsize nf_conntrackのソースコードで1つのハッシュテーブルしか見つからなかったので、同じハッシュテーブルがnf_conntrack_ipv4使用されますか?nf_conntrack_ipv6nf_conntrack_hash また、システ...

Admin

カーネル 5.14.0-362.18.1.el9_3.x86_64 を持つ Rocky 9.3 で「fio」を使用する io_uring が失敗します。
linux-kernel

カーネル 5.14.0-362.18.1.el9_3.x86_64 を持つ Rocky 9.3 で「fio」を使用する io_uring が失敗します。

私はこのコマンドをさまざまに変えてみました。 fio --name=test --ioengine=io_uring --iodepth=64 --rw=rw --bs=4k --direct=1 --size=2G --numjobs=24 --filename=/dev/sdc 低キュー深度 1/0に直接設定 低い雇用数 setenforce 0SELinuxに問題がある場合 ただし、すべての出力は次のようになります。 test: (g=0): rw=rw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096...

Admin

cgroups v2: io.latency が存在しません。
linux-kernel

cgroups v2: io.latency が存在しません。

create cgroupを使用するとsudo mkdir /sys/fs/cgroup/my-cgroup生成されio.latencyません。io.max、、io.stat...io.pressureなどの内容にcgroup.subtree_control含まれる他のioファイルを作成しますio。 ファイルを直接生成しようとすると、sudoを使用しても機能しません(権限が拒否されました)。 何が問題なのかご存知ですか?有効にできる他の項目はありますか?よろしくお願いします。 Linuxディストリビューション:Pop OS 22.04 カーネルバージョン:6...

Admin

MAC アドレスに依存するのではなく、UDEV 設定で親属性「シリアル」を使用して、LAN インターフェイスに別の名前を割り当てます。
linux-kernel

MAC アドレスに依存するのではなく、UDEV 設定で親属性「シリアル」を使用して、LAN インターフェイスに別の名前を割り当てます。

このカーネルの問題が解決を待っていて、MACアドレスがこのUSB3 LANアダプタにランダムに割り当てられていることを考えると、次のようになります。Debian 12 - 再起動するたびに、突然USB3 LanアダプタにランダムなMACアドレスが割り当てられます。 カスタマイズ以外の解決策を見つけようとしています。パッチを使用してカーネルを再コンパイルするまたは以前のカーネルバージョンの使用。 デフォルトでは、すべてのインターフェイス設定はudev設定ファイルを使用して取得したカスタム名に基づいています。70-持続性-network.rules(一部のインタ...

Admin

ThinkPad Carbon X1 gen 11 usb-thunderboltを使用したubuntu 22.04の外部モニターが動作を停止しました。
linux-kernel

ThinkPad Carbon X1 gen 11 usb-thunderboltを使用したubuntu 22.04の外部モニターが動作を停止しました。

USB-C / Thunderboltケーブル(または以前のSamsung 4K)を介してPhilips 27インチ4K外部モニターに接続したとき、Thinkpad Carbon x1 gen 11を約3週間問題なく操作しました。 x.orgのubuntu 22.04 jammyとX11を実行しています(waylandではありませんが、両方とも試しました)。 カーネルは外部モニターから電力を供給され、モニターのUSBハブに接続されているデバイスを見ることができますが(dmesgに応じて)、外部モニターを見ることはできません。 かなり新しい製品であり、システム...

Admin

kobjectが存在するかどうかを確認する方法は?
linux-kernel

kobjectが存在するかどうかを確認する方法は?

私はsysfsのガイドに従っています。https://embetronicx.com/tutorials/linux/device-drivers/sysfs-in-linux-kernel/ add new kobject を使用している場合、kobject_create_and_add指定された kobject がすでに存在する場合、関数は失敗します。 struct kobject *kobj_ref = kobject_create_and_add("my_object",kernel_kobj); だから、このkobjectがすでに存在す...

Admin

INST_RETIRED.ANYはもはやLinux 6.7のパフォーマンスカウンタではありません。
linux-kernel

INST_RETIRED.ANYはもはやLinux 6.7のパフォーマンスカウンタではありません。

前のカーネルINST_RETIRED.ANY(および次の文書で説明されている他の多くのカウンタ)の場合https://perfmon-events.intel.com/ahybrid.htm)perfのカウンターで。 私は現在Sapphire Rapids {Golden Cove}プロセッサでパフォーマンスを使用し、6.7カーネルを実行しています。 私が次のことをするとき perf stat -e INST_RETIRED.ANY,cycles sleep 2 わかりました。 event syntax error: 'INST_RETIRED.ANY,...

Admin

vmlinuz-linuxを/から/bootに移動します。
linux-kernel

vmlinuz-linuxを/から/bootに移動します。

私はArch Linux(Windowsとのデュアルブート)を実行しています。最近、いくつかのブート問題が発生し、ルートをリセットし(ライブUSB)、Linuxカーネル()をインストールしましたpacman -S linux。その結果、ルートディレクトリにvmlinuz-linuxなります。initramfs-linux.imgただし、grub設定ファイルは起動ディレクトリから検索を開始します。そのため、現在はコンピュータを起動するたびにカーネルを手動で初期化する必要があります。 vmlinuz-linuxこれら2つのファイル(および)をブートディレクトリに...

Admin