最新記事

Linuxカーネル開発者は、Linuxカーネルで改善が必要なバグやその他の領域をどのように見つけますか?
linux
kernel
development

Linuxカーネル開発者は、Linuxカーネルで改善が必要なバグやその他の領域をどのように見つけますか?

これは余談かもしれません。その場合はコメントを残していただければ削除いたします。 私はカーネル開発者になることを試みていますが、メーリングリストの一部を読んでいる間、Linuxカーネル開発者がLinuxカーネルで改善点を見つけることができる場所がどこにあるのか疑問に思いました。カーネルのバグトラッカーを見ると、実際にはカーネルのバグがあまり多くなく、パッチの多くはカーネル内部の最適化または改善に関連しています。これは、開発者がLinuxカーネルで改善すべき点をどのように把握するかについての質問につながります。 もう一度申し上げますが、トピックから抜け出した内容ならコメントを残していただければ削除いたします。

Admin

Linuxに十分な空きメモリがある場合、OOMキラーはプロセスを終了します。
linux
kernel
yocto
out-of-memory

Linuxに十分な空きメモリがある場合、OOMキラーはプロセスを終了します。

システムが約150 MBのメモリを使用できる場合、DotNETプロセスはOOM-Killerによって終了し、OOM最小基準は20MBに設定されます。 注:私たちはLinuxバージョン5.4.3-yocto-standard + g852f89dfab60を使用しています。 TCPBufferRcv.Rc は oom-killer を呼び出します: gfp_mask=0x400dc0(GFP_KERNEL_ACCOUNT|__GFP_ZERO), order=0, oom_score_adj=0 CPU: 1 PID: 1263 通信: TCPBufferRcv.Rc 汚染: GO 5.4.3-yocto-standard+g852f89dfab60 #1 [104418.214488] メモリ情報: [104418.218008] active_anon: 162682 inactive_anon: 22880 分離_anon: 0 [104418.218008] active_file: 139inactive_file: 8破壊不可能:0ダーティ:0書き換え:0不安定: 0 [104418.218008] slab_reclaimable: 1749 scrap_unreclaimable: 3627 [104418.218008] マッピング: 14313 shmem: 32870 ページテーブル: 1284 バウンス: 0[8 24 free_cma: 32512 [104418.252416] ノード 0 アクティブ _anon: 65 07 28kB inactive_anon: 91520kB active_file: 556kB inactive_file: 1980kB 削除できません: 0kB 分離(匿名): 0kB 分離(ファイル): 0kB マップ: 57252kB ダーティ: 0kB 書き込み: 0kB shm: 0kB all_unreclaimable?はい [104418.276496] 一般アイドル: 146944kB 最小: 20480kB 低: 25600kB 高: 30720kB active_anon: 650728kB inactive_anon: 91520kB active_file:2 B書き込み保留:0kB存在:1048576k B管理:1024476kB mlocked:0kBカーネルスタック: 1968kB ページテーブル: 5136kB バウンス: 0kB free_pcp: 96kB local_pcp: 32kB free_cma: 130048kB [104418.305647] lowmem_reserve[]: 0 0 [104418.309303] 一般: 49784KB(UMC) 34638KB(UMC) 144016KB(UC) 65032KB(C) 19164KB(UC)62128KB(C) 30256KB(UC) 20512kB(UC)91024KB(UC)22048kB(UC)14096kB(U)08192KB 016384KB 032768kB = 146944kB [104418.328709]総ページキャッシュページは33630です。 [104418.333180]スワップキャッシュに0ページがあります。 [104418.336716]スワップキャッシュ統計:0追加、0削除、0/0検索[104418.342292]スワップ可能= 0kB 0ページ HighMem/MovableOnly [104418.355753] 6025ページ予約済み [104418.359337] 81920ページ予約済みcma [104418.687766] oom-kill: 制約=CONSTRAINT_NONE, nodemask=(null), task=dotnet, pid=523, uid=0 [104418.696472] メモリ不足: プロセス 523 終了(dotnet) total-vm: 1602612kB, anon-rss: 451100kB, file-rss: 0kB, shmem-rss: 0kB, UID: 0 pgtable [104418.859439] oom_reaper: 収穫プロセス 523(dotnet) 割り当てに十分なメモリがある場合にカーネルがOOM-killerを呼び出す理由を理解するのに役立ちます。

Admin

GPUドライバをインストールした後、Linuxグラフィックスタックはどうなりますか?
kernel
drivers
graphics
mesa

GPUドライバをインストールした後、Linuxグラフィックスタックはどうなりますか?

Wikipediaのこの画像は、いわゆる「Linuxグラフィックスタック」を示しています。 私は新しいラップトップを購入しましたが、GPU専用のデバイスドライバがないとしましょう。だから、ある日、まともな開発者が素晴らしいフリードライバーを作るまで、グラフィック品質は良くありませんでした。そして、Linuxディストリビューションを更新すると、グラフィックの品質が本当に素晴らしいと完璧になったことがわかりました。私の質問:更新によってグラフィックスタックがどのように変更されましたか?具体的には、新しいグラフィックドライバがユーザースペースでのみ実行されるのか、少なくとも一部がカーネルスペースで実行されているのかを知りたいです。しかし、私は非常に高度なLinuxユーザーではありません。この点に注意してください。 :)

Admin

exynos-mixer 14450000.mixer: [drm: exynos_drm_register_dma] *ERROR* デバイス 14450000.mixer は IOMMU のサポートを欠いています。
linux
kernel
virtual-machine
arm
xen

exynos-mixer 14450000.mixer: [drm: exynos_drm_register_dma] *ERROR* デバイス 14450000.mixer は IOMMU のサポートを欠いています。

ここでは、スライドショーで提案されているように「snow」と呼ばれるSamsung XE303C12 ChromebookからXenを起動しようとしています。 https://www.slideshare.net/xen_com_mgr/xpds16-porting-xen-on-arm-to-a-new-soc-julien-grall-arm このデバイスは、仮想化拡張機能を備えたSamsung armv7チップであるexynos5250 SOCデュアルコア1.7GHzおよび2MB RAMで駆動されます。 特に、最新の6.1.59 Linux LTSカーネルのベアメタルとKVMを含む最新の5.4.257 LTSカーネルの両方でかなりうまく動作するようにしました。 KVMはカーネルバージョンをサポートしているので、以前のLTSカーネルバージョンを使用してKVMをテストしました。 ARM v7の5.7がLinuxから削除されました。 したがって、KVMで使用できるため、ハイパーバイザーモードが有効になっていることがわかります。 Xen では、最新の Debian バージョン Xen 4.17 を使用して Debian armhf アーキテクチャを実装します。 (XEN) Xen version 4.17.2-pre (Debian 4.17.1+2-gb773c48e36-1) (pkg-xen-devel@xxxxxxxxxxxxxxxxxxxxxxx) (arm-linux-gnueabihf-gcc (Debian 12.2.0-14) 12.2.0) debug=n Thu May 18 19:26:30 UTC 2023 Linuxカーネルは、カーネルの上にXen設定カーネルオプション(CONFIG_XEN_DOM0など)を追加するカスタムビルドで、ベアメタルの同じChromebookモデルでうまく動作します。 私たちのブート方法は、Xen wikiに従ってu-boot fdtコマンドを使用して/chosenノードを追加するLinuxカーネルの未変更のデバイスツリーにdom0を追加した後、Xenハイパーバイザーをu-bootブートしてデバイスツリーをロードするすることです。そしてそこからリンクされたページ。 また、デバイスツリー/選択したノードを使用してinitrd.imgを追加してロードしようとしましたが、テストには違いはありませんでした。私たちは実際にKVMの起動に使用するのと同じuバージョンを使用しているXenでLinux LTSカーネルバージョン6.1.59をdom0として使用していますが、大きな問題が1つあります. 私たちが見ている問題は、Xenを使用して6.1.59カーネルバージョンをdom0で起動したときに画面が完全に黒くなり、システムにアクセスする唯一の方法はSSHを介してリモートでアクセスすることです。 ログには、SSH経由でリモートアクセス可能なWi-Fiカードに接続すると、USB光マウスがオンになるため、USBも機能するなど、他のほとんどの操作が機能していることを示します。 明らかにディスクも動作しています。 SDカードスロットから起動できるようにChrome OS開発者モードオプションをオンにして、ChromebookをデバイスのSDカードスロットから起動するように設定します。 ミステリーは、Xenからdom0で起動するのではなく、ベアメタルからまったく同じ6.1.59カーネルを起動すると、X.org Windowsシステムの対話を介して実行できる画面へのフルアクセスで起動されます。しかし、Xenを使用してdom0で起動すると、画面が完全に黒く変わり、システムへの唯一のアクセスはSSH経由のネットワーク経由です。 また、ハイパーバイザーモードでKVMを使用して5.4.257カーネルを起動すると、画面が機能し、X.org Windowsシステムを介してシステムと対話できます。 ログファイルに移動すると、次のエラーが表示されます。 Xen(またはベアメタル)の使用: devuan-bunsen kernel: [drm] Exynos DRM: using 14400000.fimd device for DMA mapping operations devuan-bunsen kernel: exynos-drm exynos-drm: bound 14400000.fimd (ops 0xc0d96354) devuan-bunsen kernel: exynos-drm exynos-drm: bound 14450000.mixer (ops 0xc0d97554) devuan-bunsen kernel: exynos-drm exynos-drm: bound 145b0000.dp-controller (ops 0xc0d97278) devuan-bunsen kernel: exynos-drm exynos-drm: bound 14530000.hdmi (ops 0xc0d97bd0) ... devuan-bunsen kernel: Console: switching to colour frame buffer device 170x48 devuan-bunsen kernel: exynos-drm exynos-drm: [drm] fb0: exynosdrmfb frame buffer device devuan-bunsen kernel: [drm] Initialized exynos 1.1.0 20180330 for exynos-drm on minor 0 この場合、カーネルはexynos-drmカーネルを使用してfb0デバイスを起動できます。 しかし、Xenの場合、exynos-drmで次のエラーが発生します。 devuan-bunsen kernel: [drm] Exynos DRM: using 14400000.fimd device for DMA mapping operations devuan-bunsen kernel: exynos-drm exynos-drm: bound 14400000.fimd (ops 0xc0d96354) devuan-bunsen kernel: exynos-mixer 14450000.mixer: [drm:exynos_drm_register_dma] *ERROR* Device 14450000.mixer lacks support for IOMMU devuan-bunsen kernel: exynos-drm exynos-drm: failed to bind 14450000.mixer (ops 0xc0d97554): -22 devuan-bunsen kernel: exynos-drm exynos-drm: adev bind failed: -22 devuan-bunsen kernel: exynos-dp: probe of 145b0000.dp-controller failed with error -22 Xen MLの投稿を開始しましたが、まだ実際に解決策が見つかりませんでした。 https://lists.xenproject.org/archives/html/xen-users/2023-10/msg00034.html カーネル構成ファイルで何らかの方法でEXYNOS_IOMMUパラメータを調整する必要があるか調整できるようです...または?

Admin

別々のシステム構成ファイル - つまり、カーネルパラメーターに基づくさまざまなブート/初期化構成
linux
systemd
kernel
boot
boot-loader

別々のシステム構成ファイル - つまり、カーネルパラメーターに基づくさまざまなブート/初期化構成

起動時間パラメータ(および/または実行中のカーネルの種類)に基づいて特定のカーネルモジュール、マウントポイント、および起動時間サービス(SystemdまたはOpenRC)を有効または無効にする方法はありますか? さらに一歩進んで、初期化システムを同じように置き換えることができますか? (カーネルパラメータについて知っていますが、init=...(例えば)systemdとOpenRCは同じインストールに共存し、起動時に勝手に交換できますか? 背景知識について(誰かがこれを覚えているほど年をとった場合)、私の考えは起動時にメニューから選択できるconfig.sys / autoexec.batに複数のシステム構成ファイルを持つDOS技術から来ました。 したがって、(純粋な例)GRUBに3つのメニュー項目が必要な場合は、次のようになります。 「ゲーム」:カスタムカーネルをロードし、独自のnvidiaドライバをロードし、optimus(またはvfioパススルー)を有効にしてX11から起動します。 「ワーク」:別のカーネルをロードし、Intelビデオドライバをロードし、暗号化されたワークパーティションをマウントしてからWaylandから起動します。 「サーバー」:3番目(待ち時間が長い)カーネルをロードし、特定の追加のバックグラウンドサービス(Webサーバー、SSHホスト、VMホストなど)を起動し、テキストコンソールから起動します。 上記は単なる例ですが、要点をご理解ください。 Linuxでそのようなことは可能ですか?

Admin

close(2) が完了しないのはなぜですか?マルチスレッドで発生する可能性のある問題
linux
kernel
linux-kernel

close(2) が完了しないのはなぜですか?マルチスレッドで発生する可能性のある問題

RedHat Linux 7.9、カーネル3.10.0-1160.90.1.el7.x86_64、glibc-2.17-326.el7_9.x86_64。はい、古いです。申し訳ありません。 Linuxカーネルでclose(2)カーネル関数が時々1回の呼び出しで完了しないのはなぜですか?マルチスレッドに問題がある可能性があることがわかりました。スレッドがファイル記述子を開いたり、書き込んだり、閉じたりした場合、クローズ中にファイル記述子が open() の他のスレッドで再使用されることを個人的に目撃しました。その後、close()が完了して書き込みを試みると、無効なファイル記述子が表示されます。 これは機能ですか、それともバグですか?複数のスレッドがファイルディスクリプタテーブルを共有していることを知っているので、ファイルディスクリプタテーブルをできるだけ早く処理するときに未定義の動作(以下を参照)が発生する可能性がありますが、close()が完了する前にファイルディスクリプタがどのように解放されるのか疑問に思います。 スレッドが開かれたときに呼び出されるclone()は、実際にはすべてのスレッド間でファイル記述子テーブル全体を共有していることを知らないため、各スレッドのコードは自分が開くファイル記述子に書き込みます。また、あるスレッドの open()/write()/close() ワークセットが別のスレッドの close() の途中で open() を実行するため、競合が発生する可能性があるとは予想されません。クリーンアップが完了して返される前に使用できるファイル記述子。 以下は、この動作を示すstraceのいくつかの出力です。これには58506と58508という2つのスレッドがあります。 PID 58506は、タイムスタンプ532769の終わりから終了12に移動します。 532791 - 25マイクロ秒後 - 終了は完了です。ただし、タイムスタンプ532775-532769-PID 58508以降、8つのマイクがファイルを開きます。 532803(オープン開始後28マイクロ秒)でオープンが完了し、ファイル記述子12(現在クローズ)がPID 58508に割り当てられます。 532949でファイル記述子が正しくないため、書き込みに失敗しました。これは、PID 58508がファイル記述子を取得した532803以降の146マイクロ秒です。 これは、一対のSSDでサポートされているハードウェアRAIDカードを持つDell R640サーバーのローカルファイルシステムにあります(価値があるだけ)。 58506 08:58:34.532769 close(12 58508 08:58:34.532775 open("/path/to/dir1/file1", O_WRONLY|O_CREAT|O_TRUNC, 0664 58506 08:58:34.532791 <... close resumed>) = 0 58508 08:58:34.532803 <... open resumed>) = 12 58506 08:58:34.532808 close(12) = 0 58508 08:58:34.532936 write(12, “datadatadatadata"..., 1572 58506 08:58:34.532943 <... write resumed>) = 258 58508 08:58:34.532949 <... write resumed>) = -1 EBADF (Bad file descriptor) 58506 08:58:34.532963 stat("/path/to/dir2", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 58506 08:58:34.532995 open("/path/to/dir2/file2", O_WRONLY|O_CREAT|O_TRUNC, 0664) = 12 58508 08:58:34.533286 close(12) = 0 58508 08:58:34.533311 close(12) = -1 EBADF (Bad file descriptor) 58508 08:58:34.533595 write(1, "[2023-10-04 08:58:34.533588 E] P"..., 216) = 216 58506 08:58:34.533634 write(12, "moredatadatadatadata"..., 6139) = -1 EBADF (Bad file descriptor) 58506 08:58:34.533660 close(12) = -1 EBADF (Bad file descriptor) 58508 08:58:34.533681 nanosleep({tv_sec=0, tv_nsec=100000000}, 58506 08:58:34.533688 close(12) = -1 EBADF (Bad file descriptor) 58506 08:58:34.533709 stat("/path/to/dir2/file2", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 58506 08:58:34.533760 write(1, "[2023-10-04 08:58:34.533754 E] P"..., 233) = 233 58506 08:58:34.533786 nanosleep({tv_sec=0, tv_nsec=100000000}, タイムスタンプ533709では、開発者はファイルの長さがゼロであることを確認します。ファイルは実際に作成されましたが、書き込みに失敗してファイルにデータがありません。したがって、コードはループに陥り、ファイルを再構築しようとします。 POSIXでは、開かれたファイル記述子をサブスレッドにコピーするにはpthread()が必要です(https://linux.die.net/man/7/pthreads)、しかし、サブオープンファイル記述子は言及されていません。 私はclose()が「オペレーティングシステムの観点から見ると、この関数の実行中にスレッドをキャンセルするのが安全であることを意味する」キャンセルポイントであることに少し不安です(https://stackoverflow.com/questions/27374707/what-exactly-is-a-cancellation-point、許可された回答を参照してください)。しかし、close()スレッドがキャンセルされると、他のスレッドに無効なファイル記述子がある可能性があります...?オペレーティングシステムは、当時正しいファイル記述子テーブルを持っていることを確認しますか?そうですが、close()が完了する前にファイル記述子を解放すると緊張します。

Admin

スワップ使用量がほぼゼロであるにもかかわらず、休止状態で十分なメモリが見つかりません。
kernel
linux-kernel
manjaro
hibernate

スワップ使用量がほぼゼロであるにもかかわらず、休止状態で十分なメモリが見つかりません。

休止状態に関する問題を診断しようとしています。私はManjaroとカーネル6.1.53-1-MANJAROを実行するLenovo Ideapad(AMD)を使用しています。休止状態に切り替えようとすると、RAMの使用量は約2/3で、使用可能なスワップスペースが100%に近い場合でも、使用可能なメモリ不足エラーが発生し続けます。 休止状態前のマイメモリの状態は次のとおりです。 free -h               total        used        free      shared  buff/cache   available Mem:           9.7Gi       6.4Gi       549Mi        69Mi       3.1Gi       3.3Gi Swap:           19Gi       6.2Mi        19Gi sudo systemctl hibernateその後、ログのsystemdで次のエラーを試しました。systemd-sleep[4570]: Failed to put system to sleep. System resumed again: Cannot allocate memory 下にスクロールすると、次のようになります。 Sep 26 17:25:10 keylimepie kernel: PM: hibernation: Error -12 creating image Sep 26 17:25:10 keylimepie kernel: PM: hibernation: Not enough free memory Sep 26 17:25:10 keylimepie kernel: PM: hibernation: Normal pages needed: 1376113 + 1024, available pages: 1228684 Sep 26 17:25:10 keylimepie kernel: PM: hibernation: Need to copy 1376113 pages Sep 26 17:25:10 keylimepie kernel: PM: hibernation: Creating image: free -h以下を表示します。 total used free shared buff/cache available Mem: 9.7Gi 5.4Gi 3.6Gi 40Mi 932Mi 4.2Gi Swap: 19Gi 4.5Gi 15Gi 0に変更してみましたが、/sys/power/image_size違いはありませんでした。私はswappinessを60から10に更新しましたが、これは実際の休止状態プロセスに必ずしも影響しないと思います。 今ここで何が起こっているのかわかりません。ほぼ19GBの空きスワップパーティションがありますが、カーネルはまだ画像を作成するための空きメモリが不足していると言います。私が基本的な部分を見逃しているのでしょうか、それとも解決してみることができる部分があるのでしょうか?

Admin

ubootカーネルとdtbの計算
kernel
u-boot
device-tree

ubootカーネルとdtbの計算

ubootでこれらのパラメータを計算する方法は? : bootm_low=0 bootm_size=7ff00000 fdt_addr_r=0x40000000 fdt_high=0x100000 fdt_size_r=0x400000 fdtcontroladdr=7bc971c0 kernel_addr_r=0x18000000 kernel_comp_addr_r=0x30000000 kernel_comp_size=0x3C00000 kernel_size_r=0x10000000 loadaddr=0x8000000 pxefile_addr_r=0x10000000 ramdisk_addr_r=0x02100000 私の起動コマンド: fatload mmc 0:1 $kernel_addr_r Image.gz fatload mmc 0:1 $fdt_addr_r system.dtb booti $kernel_addr_r - $fdt_addr_r A53には4GまたはDRAMがあります。これらのパラメータの1つを変更すると、カーネルは異なる動作をします。 このパラメータがないとカーネルを起動できないため、このパラメータを使用していますが、fdt_high正しい値を計算する方法がわかりません。 助けてくれてありがとう

Admin

しばらくすると、ゲームパッドの接続が失われます。
linux
kernel
usb
input
usb-device

しばらくすると、ゲームパッドの接続が失われます。

安価な汎用USBゲームパッド(nubwo nj-25)を購入しました。接続すると、しばらく中断されるまで機能します。その後、エラーが発生します。 デバイス情報 Linux 6.1.52(NixOS) Lenovo ThinkPad T14s Gen 1 AMD を使用しています。 情報 [ 3788.152300] usb 6-2: new low-speed USB device number 42 using xhci_hcd [ 3788.298823] usb 6-2: New USB device found, idVendor=0079, idProduct=0006, bcdDevice= 1.07 [ 3788.298828] usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 3788.298829] usb 6-2: Product: USB Joystick [ 3788.298830] usb 6-2: Manufacturer: Microntek [ 3788.330720] input: Microntek USB Joystick as /devices/pci0000:00/0000:00:08.1/0000:06:00.4/usb6/6-2/6-2:1.0/0003:0079:0006.0010/input/input39 [ 3788.330981] dragonrise 0003:0079:0006.0010: input,hidraw0: USB HID v1.10 Joystick [Microntek USB Joystick ] on usb-0000:06:00.4-2/input0 [ 3788.330997] dragonrise 0003:0079:0006.0010: Force Feedback for DragonRise Inc. game controllers by Richard Walmsley <[email protected]> [ 4171.720905] usb 6-2: reset low-speed USB device number 42 using xhci_hcd [ 4171.985403] usb 6-2: device descriptor read/64, error -71 [ 4172.361332] usb 6-2: device descriptor read/64, error -71 [ 4172.729841] usb 6-2: reset low-speed USB device number 42 using xhci_hcd [ 4172.993400] usb 6-2: device descriptor read/64, error -71 [ 4173.369630] usb 6-2: device descriptor read/64, error -71 [ 4173.737344] usb 6-2: reset low-speed USB device number 42 using xhci_hcd [ 4173.737966] usb 6-2: Device not responding to setup address. [ 4173.941973] usb 6-2: Device not responding to setup address. [ 4174.149322] usb 6-2: device not accepting address 42, error -71 [ 4174.409303] usb 6-2: reset low-speed USB device number 42 using xhci_hcd [ 4174.409740] usb 6-2: Device not responding to setup address. [ 4174.613966] usb 6-2: Device not responding to setup address. [ 4174.821319] usb 6-2: device not accepting address 42, error -71 [ 4174.821372] usb 6-2: USB disconnect, device number 42 [ 4174.956550] usb 6-2: new low-speed USB device number 43 using xhci_hcd [ 4175.078372] usb 6-2: device descriptor read/64, error -71 [ 4175.302360] usb 6-2: device descriptor read/64, error -71 [ 4175.519328] usb 6-2: new low-speed USB device number 44 using xhci_hcd [ 4175.640575] usb 6-2: device descriptor read/64, error -71 [ 4175.870817] usb 6-2: device descriptor read/64, error -71 [ 4175.973475] usb usb6-port2: attempt power cycle [ 4176.353793] usb 6-2: new low-speed USB device number 45 using xhci_hcd [ 4176.354190] usb 6-2: Device not responding to setup address. [ 4176.558209] usb 6-2: Device not responding to setup address. [ 4176.765451] usb 6-2: device not accepting address 45, error -71 [ 4176.879665] usb 6-2: new low-speed USB device number 46 using xhci_hcd [ 4176.880034] usb 6-2: Device not responding to setup address. [ 4177.086015] usb 6-2: Device not responding to setup address. [ 4177.293320] usb 6-2: device not accepting address 46, error -71 [ 4177.293386] usb usb6-port2: unable to enumerate USB device 頑張りました options usbcore use_both_schemes=y options usbcore autosuspend=-1

Admin

Qualcomm fsm99XXコンパクトユニットプラットフォームでカーネルを3.xから5.Xにアップデートするには何が必要ですか?
kernel
linux-kernel
kernel-modules

Qualcomm fsm99XXコンパクトユニットプラットフォームでカーネルを3.xから5.Xにアップデートするには何が必要ですか?

現在、Qualcomm fsm99xxのバージョンは3.10.84です。 3.10.84は、さまざまな変更の後にQualcommによって提供されました。 Qualcommのサポートなし(サポートされなくなったため)5.10にアップデートしようとしています。以前のmsmドライバを最新の5.10カーネルに移植しようとすると、多くのドライバの問題が発生しました。 例えば error: CPU_TASKS_FROZEN’ undeclared (first use in this function); error: implicit declaration of function ‘register_cpu_notifier’ これらのキーワードは3.10.84には存在しますが、最新の5.Xには存在しないことがわかりました。それでは、最新の5.Xカーネルに存在しなくなった変更を使用しないように、これらのカーネルの変更をどのように理解し、ドライバコードに同じことをしますか?

Admin

Nvidiaドライバのインストール後に解像度が800×600で停止する
fedora
kernel
drivers
nvidia
resolution

Nvidiaドライバのインストール後に解像度が800×600で停止する

私はCUDAコードを書くためにFedora 40にNvidiaドライバをインストールしたいと思います。実際に参考にしたいことこの問題非常に似ているので、誰かが7年前にこの質問をしましたが、答えを得られませんでした。実は同じ問題を経験する方々をたくさん見ましたが、問題を解決する答えはありませんね。ほとんどのソリューションは、他の手段(Nvidia Webサイトなど)ではなく、RPMFusionリポジトリを介してドライバをインストールすることに焦点を当てています。 RPMFusionから直接インストールしたため、これは問題ではありません。 Fedora 40用kmod-nvidia(およびkmodが機能していない後にakmod-nvidia)パッケージをインストールしました。これを実行して再起動した後、解像度は800×600で停止しました。私が使用しているモニターは1680x1050です。今何をしても解像度を変更することはできず、モニターに「なし」と表示されます。 nvidia-smiコマンドによると、ドライバは550.76です。 lspci -d ::03xx -nnv出力: 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] [10de:2504] (rev a1) (prog-if 00 [VGA controller]) Subsystem: ASUSTeK Computer Inc. Device [1043:881d] Flags: bus master, fast devsel, latency 0, IRQ 172 Memory at a0000000 (32-bit, non-prefetchable) [size=16M] Memory at 4000000000 (64-bit, prefetchable) [size=256M] Memory at 4010000000 (64-bit, prefetchable) [size=32M] I/O ports at 4000 [size=128] Expansion ROM at 000c0000 [virtual] [disabled] [size=128K] Capabilities: Kernel driver in use: nvidia Kernel modules: nvidia_drm, nvidia cat /proc/fb「該当するディレクトリがありません」が発生します。 xrandr --listproviders出力: Providers: number : 1 Provider 0: id: 0x41 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting 私はx86-64 IntelコアとRTX 3060 GPUを搭載したデスクトップコンピュータを使用しています。 debugfsをインストールした後も、/sys/kernel/debug/vgaswitcheroo/switchは存在しません。 私は試した: Fedora 40の新規インストール Fedora 39の新規インストール KDEとGnomeとWayland ドライバをインストールするさまざまな方法 xrandrを使用して端末を介して解像度を設定する(「使用可能モードで1680×1050のサイズが見つかりません」が発生)

Admin