最新記事

GDBを使用してLinuxモジュールをリモートでデバッグする方法は?
linux
centos
linux-kernel
kernel-modules
gdb

GDBを使用してLinuxモジュールをリモートでデバッグする方法は?

インターネットで検索しましたが、gdbを使用してLinuxモジュールをリモートでデバッグする正しい手順が見つかりませんでした。私はqemuを試していますが、そこで多くの問題に直面しています。使用できる他のツールはありますか?それ以外の場合は、Linuxモジュールをリモートでデバッグする正しい手順を教えてください。

Admin

カーネルモジュールでgettimeofdayをどのように使用しますか?
linux-kernel
kernel-modules

カーネルモジュールでgettimeofdayをどのように使用しますか?

カーネルモジュールで次のコードを使用しようとしています。 struct timeval now; gettimeofday(&now, NULL); ただし、カーネルをコンパイルすると、次のエラーが発生します。 drivers/media/i2c/ox05b.c:776:17: error: storage size of ‘now’ isn’t known 776 | struct timeval now; | ^~~

Admin

aarch64からUEFIから起動するための最小カーネル設定は何ですか?
boot
linux-kernel
raspberry-pi
uefi

aarch64からUEFIから起動するための最小カーネル設定は何ですか?

私は何人かの人々と遊んでいました。UEFIファームウェア私はRaspberry Piをダウンロードし、また取得しようとしました。ラズベリーパイコアUEFIを使用して起動します。だから私は実行してmake -j4 bcm2711_defconfig表示されたオプションを有効にしました。最初から始まるLinuxmake -j4UEFIを使用してカーネルをコンパイルして実行しました。 完了したら、カーネルを実行してインストールmake -j4 dtbs modulesします。make -j4 dtbs_install modules_install install私はvmlinuz.efi電話を受けたファイルを見つけ、/bootそれが良い兆候だと思いました。 再起動後に提供されたUEFIシェルを入力し、次のコマンドを入力しました。 Shell> fs0: FS0:\> vmlinuz.efi root=/dev/mmcblk0p2 rootwait ro ブート(またはカーネルパニックの発生)の代わりに、次の結果が表示されます。 Shell> fs0: FS0:\> vmlinuz.efi root=/dev/mmcblk0p2 rootwait ro EFI stub: Decompressing Linux Kernel... EFI stub: Generating empty DTB EFI stub: Exiting boot services... EFI stub: ERROR: Exit boot services failed. EFI stub: ERROR: Failed to update FDT and exit boot services 私がここで何を間違っているのか? これは私のものです。.config ファイル

Admin

LinuxのVL813 USBハブに不思議なエラーがありますか?
linux
ubuntu
linux-kernel
usb
usb-device

LinuxのVL813 USBハブに不思議なエラーがありますか?

私は7ポート外​​部USBハブを搭載したUbuntu 22.04を実行しています。このボックスはVL813ハブを介して2つの4ポートとして実装されています。 lsusbのLinux側では、次のようになります。 Bus 004 Device 009: ID 2109:0813 VIA Labs, Inc. VL813 Hub Bus 004 Device 008: ID 2109:0813 VIA Labs, Inc. VL813 Hub Bus 003 Device 060: ID 2109:2813 VIA Labs, Inc. VL813 Hub Bus 003 Device 026: ID 2109:2813 VIA Labs, Inc. VL813 Hub 実際、各VL813には2つのチップがあります。バス004の0813はUSB3を処理し、バス003の2813はUSB2を処理する。 バス 4 の場合、lsusb -t 表示 /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M |__ Port 6: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M |__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/4p, 5000M 7ポートブレイクアウトボックスを実装するために、2つの4ポートチップを重ね合わせる様子を示します。 最後に、ミステリーは次のようになります。システムログには継続的なメッセージが表示されます。 Mar 5 12:01:52 orac kernel: [2068420.628891] usb 4-6.1: Disable of device-initiated U1 failed. Mar 5 12:01:52 orac kernel: [2068420.633615] usb 4-6.1: Disable of device-initiated U2 failed. Mar 5 12:01:52 orac kernel: [2068420.875834] usb 4-6.1: reset SuperSpeed USB device number 3 using xhci_hcd Mar 5 12:02:38 orac kernel: [2068466.757899] usb 4-6.1: Disable of device-initiated U1 failed. Mar 5 12:02:38 orac kernel: [2068466.762412] usb 4-6.1: Disable of device-initiated U2 failed. Mar 5 12:02:39 orac kernel: [2068467.004831] usb 4-6.1: reset SuperSpeed USB device number 3 using xhci_hcd 外部ボックスのポートに接続していない状態です。 数日ごとに、システムログ内のすべてのメッセージに加えて、すべてのUSBデバイス(外部デバイスに関連付けられていないデバイスを含む)が中断されます。 USB 4-6.1メッセージが送信されてから6秒後に何の介入もなくxhci_hcdドライバが終了する最後の停止でこれを確認できます。 Mar 4 21:55:34 orac kernel: [2017642.022271] usb 4-6: Disable of device-initiated U1 failed. Mar 4 21:55:34 orac kernel: [2017642.025784] usb 4-6: Disable of device-initiated U2 failed. Mar 4 21:55:40 orac kernel: [2017647.323348] xhci_hcd 0000:00:14.0: ERROR mismatched command completion event Mar 4 21:55:40 orac kernel: [2017647.323358] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command Mar 4 21:55:40 orac kernel: [2017647.579344] xhci_hcd 0000:00:14.0: xHCI host not responding to stop endpoint command. Mar 4 21:55:40 orac kernel: [2017647.579350] xhci_hcd 0000:00:14.0: USBSTS: 0x00000000 Mar 4 21:55:40 orac kernel: [2017647.579354] xhci_hcd 0000:00:14.0: xHCI host controller not responding, assume dead Mar 4 21:55:40 orac kernel: [2017647.579375] xhci_hcd 0000:00:14.0: Timeout while waiting for stop endpoint command Mar 4 21:55:40 orac kernel: [2017647.579399] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command Mar 4 21:55:40 orac kernel: [2017647.579409] xhci_hcd 0000:00:14.0: HC died; cleaning up キーボード(ボックスにもありません)が機能しないため、ネットワーク経由でログインし、xhci_hcdドライバをバインド解除してから再バインドしてUSBを復元する必要があります。だから私はこれが4番バスに対する絶え間ない苦情と関連していると思います。 USBハブボックスなのかLinuxの問題なのかわからない。 アイデアはありますか?

Admin

Linuxカーネルinitramfsでシェルへのttyアクセスを有効にするために必要な設定は何ですか?
shell
linux-kernel
initramfs

Linuxカーネルinitramfsでシェルへのttyアクセスを有効にするために必要な設定は何ですか?

たとえば、エコーされると、arm64プラットフォームの/ dev / ram0にロードされたLinux initramfsにシリアルコンソール端末の出力が表示されますが、たとえばを使用して/ initスクリプトでこのシェルを起動したり、echo "serial tx to ttyAMA0" > /dev/ttyAMA0シェルに接続したりしません。shbash/bin/busybox sh カーネルコマンドライン: root=/dev/ram0 rw earlyprintk console=ttyAMA0,115200 console=tty0,115200 initcall_debug=1 (ユーザープログラムのシリアルポートプロンプトと対話しようとする唯一の成功した試みは、ログインプロンプトを表示し、/bin/busybox getty 115200 ttyAMA0キーボード文字入力に応答してgetty設定が有効になっていないため、シリアルポートttyAMA0に「ログインエラー」を印刷する端末を使用することでした。これ/sbin/ttyは、起動時にメンテナンス/構造シェルには必要ないため、指定されたユーザーアカウントにログインする方法がないためですScreen。ですが、バージョンを試してみましたが、initramfsへのシリアルコマンドラインアクセスを有効にすることはできません。問題に対する「類似の質問」のどれも、これに対する解決策を提案していない。minicomshbash 調整後最小initramfsこれまでの例は、シリアル端末にアクセスすることなくテストされています。 ありがとう

Admin

/sys/kernel/debug/dynamic_debug/controlに書き込むとき、+pはどういう意味ですか?
linux
linux-kernel

/sys/kernel/debug/dynamic_debug/controlに書き込むとき、+pはどういう意味ですか?

Wireguardのログを有効にしましたが、実際にはそれを無効にしたいと思います。まず、このプロセスで何が追加されたかを理解したので、ここに質問があります。 次のコマンドでロギングを有効にしました。 # modprobe wireguard && echo module wireguard +p > /sys/kernel/debug/dynamic_debug/control ファイルに何が追加されたのか知りたいです。これを実行するとecho module wireguard +p結果が表示されず、echoマニュアルページには+pこれに関する情報は記載されていません。 +pそれが何であるかを教えてもらえますか?

Admin

Inotifyが機能するためにオペレーティングシステムで有効にする必要があるLinuxカーネル設定はありますか?
linux-kernel
inotify

Inotifyが機能するためにオペレーティングシステムで有効にする必要があるLinuxカーネル設定はありますか?

このトピックを調査するのが難しいので、誰かが正しい方向を教えてくれることを願っています。 Inotifyが機能するためにオペレーティングシステムで有効にする必要があるカーネル設定はありますか? Linuxカーネルの.configファイルでどのオプションを有効にする必要がありますか?

Admin

WANイーサネットインターフェイスからの着信パケットドロップ数をどのように診断して減らすことができますか?
linux
networking
linux-kernel
firewall
ethernet

WANイーサネットインターフェイスからの着信パケットドロップ数をどのように診断して減らすことができますか?

私はそれぞれファイアウォール/ルーターとして実行される複数のUbuntuサーバーを持っています。私はそのうちの1つが他のものよりはるかに高いRXドロップ番号を持っていることを発見しました。水滴がはねているようでした。最後のnetstatは約2.6%の低下を示しています。 $ sudo netstat -ni Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 1715434 0 45323 0 672858 0 0 0 BMORU eth1 1500 7146 0 0 0 18148 0 0 0 BMRU lo 65536 200950 0 0 0 200950 0 0 0 LRU wlan0 1500 679702 0 0 0 1315730 0 0 0 BMRU これは他の人が示した〜0.01%よりはるかに高いです。この問題の原因をどのように理解できますか? これまで、インターフェイスリングの受信バッファサイズを増やしてみました。 $ sudo ethtool -g eth0 Ring parameters for eth0: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 Current hardware settings: RX: 256 RX Mini: 0 RX Jumbo: 0 TX: 256 $ sudo ethtool -G eth0 rx 4096 tx 4096 また、ntupleフィルタを使用して物理層からいくつかのパケットをドロップすることができると思いましたが、このIntel i210 NICではethtoolを使用してこれらのルールを変更することはできません。 参考までに、ethtoolが提供する追加情報は次のとおりです。 (このパラメータも変更できません。) $ sudo ethtool -c eth0 Coalesce parameters for eth0: Adaptive RX: off TX: off stats-block-usecs: 0 sample-interval: 0 pkt-rate-low: 0 pkt-rate-high: 0 rx-usecs: 3 rx-frames: 0 rx-usecs-irq: 0 rx-frames-irq: 0 tx-usecs: 0 tx-frames: 0 tx-usecs-irq: 0 tx-frames-irq: 0 rx-usecs-low: 0 rx-frames-low: 0 tx-usecs-low: 0 tx-frames-low: 0 rx-usecs-high: 0 rx-frames-high: 0 tx-usecs-high: 0 tx-frames-high: 0

Admin

実際のカーネルメッセージ行を隠す重要でないカーネルメッセージを除外する方法
linux
rhel
kernel
linux-kernel
kernel-modules

実際のカーネルメッセージ行を隠す重要でないカーネルメッセージを除外する方法

私たちはHP HW(DL 380 G10)物理REDHATシステムを持っています。 (バージョン7.5)カーネルメッセージが次のメッセージで埋められていることがわかります。 ACPI Error: Method parse/execution failed [\_SB_.PMI0._PMM] (Node ffff9209cebcf280), AE_AML_BUFFER_LIMIT (20130517/psparse-536) 問題は、これらすべてのメッセージが実際に重要なカーネルメッセージを隠すことです。 はい [23040.319045] ACPI Error: Method parse/execution failed [\_SB_.PMI0._PMM] (Node ffff9209cebcf280), AE_AML_BUFFER_LIMIT (20130517/psparse-536) [23040.319052] ACPI Exception: AE_AML_BUFFER_LIMIT, Evaluating _PMM (20130517/power_meter-339) [23100.182918] ACPI Error: SMBus/IPMI/GenericSerialBus write requires Buffer of length 66, found length 32 (20130517/exfield-389) [23100.182926] ACPI Error: Method parse/execution failed [\_SB_.PMI0._PMM] (Node ffff9209cebcf280), AE_AML_BUFFER_LIMIT (20130517/psparse-536) [23100.182935] ACPI Exception: AE_AML_BUFFER_LIMIT, Evaluating _PMM (20130517/power_meter-339) [23160.038404] ACPI Error: SMBus/IPMI/GenericSerialBus write requires Buffer of length 66, found length 32 (20130517/exfield-389) [23160.038411] ACPI Error: Method parse/execution failed [\_SB_.PMI0._PMM] (Node ffff9209cebcf280), AE_AML_BUFFER_LIMIT (20130517/psparse-536) [23160.038421] ACPI Exception: AE_AML_BUFFER_LIMIT, Evaluating _PMM (20130517/power_meter-339) [23219.897894] ACPI Error: SMBus/IPMI/GenericSerialBus write requires Buffer of length 66, found length 32 (20130517/exfield-389) [23219.897905] ACPI Error: Method parse/execution failed [\_SB_.PMI0._PMM] (Node ffff9209cebcf280), AE_AML_BUFFER_LIMIT (20130517/psparse-536) [23219.897924] ACPI Exception: AE_AML_BUFFER_LIMIT, Evaluating _PMM (20130517/power_meter-339) [23279.741745] ACPI Error: SMBus/IPMI/GenericSerialBus write requires Buffer of length 66, found length 32 (20130517/exfield-389) [23279.741760] ACPI Error: Method parse/execution failed [\_SB_.PMI0._PMM] (Node ffff9209cebcf280), AE_AML_BUFFER_LIMIT (20130517/psparse-536) [23279.741778] ACPI Exception: AE_AML_BUFFER_LIMIT, Evaluating _PMM (20130517/power_meter-339) [23339.617647] ACPI Error: SMBus/IPMI/GenericSerialBus write requires Buffer of length 66, found length 32 (20130517/exfield-389) [23339.617655] ACPI Error: Method parse/execution failed [\_SB_.PMI0._PMM] (Node ffff9209cebcf280), AE_AML_BUFFER_LIMIT (20130517/psparse-536) [23339.617665] ACPI Exception: AE_AML_BUFFER_LIMIT, Evaluating _PMM (20130517/power_meter-339) このメッセージを無視する方法について提案がありますか?

Admin