Menguji Patch
Panduan singkat untuk menguji apakah sebuah patch menyelesaikan masalah Anda.
Kadang-kadang, ketika mencoba menyelesaikan masalah kernel (terutama yang spesifik pada perangkat keras Anda), Anda mungkin diminta untuk menerapkan sebuah patch untuk memverifikasi apakah masalah tersebut telah diperbaiki sebelum patch tersebut dimasukkan.
Ini adalah panduan singkat tentang cara mendapatkan sumber kernel Fedora untuk versi Fedora Anda, menerapkan patch, dan membangun kernel untuk diuji. Panduan ini ditujukan bagi pengguna yang tidak akrab dengan proses pengembangan kernel Fedora, dan hanya memerlukan pemahaman dasar tentang alat yang terkait.
Persiapan Awal
Pertama, jika belum terpasang, Anda perlu menginstal fedpkg (utilitas pemaketan RPM milik Fedora):
sudo dnf install fedpkg
Selanjutnya, Anda perlu mengambil kode sumber (langkah ini akan membuat subdirektori baru bernama "kernel" dan meletakkan semua berkas yang diperlukan di sana):
fedpkg clone --anonymous kernel
Lalu, masuk ke direktori "kernel" yang telah dibuat:
cd kernel
Setelah berada di direktori kernel, Anda perlu berpindah ke cabang (branch) untuk versi Fedora Anda dengan menggunakan perintah berikut, di mana "<fedora version>" adalah versi Fedora Anda:
fedpkg switch-branch f<fedora version>
Sebagai contoh, jika Anda menggunakan Fedora 34, jalankan:
fedpkg switch-branch f34
Terakhir, Anda perlu menambahkan akun Anda ke grup "mock" menggunakan perintah berikut, di mana "<username>" adalah nama pengguna Fedora Anda:
usermod -a -G mock <username>
Agar perubahan ini berlaku, Anda dapat keluar dan masuk kembali, atau menjalankan perintah berikut:
newgrp -
Menerapkan Patch
Untuk menerapkan patch, ambil berkas .patch yang diminta untuk Anda terapkan, dan simpan di direktori "kernel" yang dibuat pada langkah sebelumnya dengan nama:
linux-kernel-test.patch
Membangun Paket
Untuk membangun paket kernel, pastikan Anda sudah berada di direktori "kernel".
Langkah berikutnya mungkin memakan waktu cukup lama, jadi pastikan Anda memiliki waktu luang di mana komputer dapat bekerja tanpa gangguan.
Kemudian, jalankan perintah berikut:
fedpkg mockbuild
Akhirnya, silakan nikmati minuman hangat, berjalan-jalan, bermain dengan hewan peliharaan Anda, atau bersantai dan kembali nanti.
Menginstal Paket
Untuk menginstal paket, pastikan Anda berada di direktori "kernel". Dari sana, masuk ke direktori "results_kernel":
cd results_kernel
Direktori ini akan berisi satu subdirektori dengan nama versi kernel. Gunakan perintah ls untuk mengetahui namanya, misalnya:
ls 5.13.9
Masuk ke direktori tersebut:
cd 5.13.9
Ulangi proses ini sekali lagi:
ls 200.fc34 cd 200.fc34
Terakhir, jika Anda menjalankan ls sekali lagi, Anda akan melihat beberapa berkas ".rpm". Sebagai contoh:
ls -1 build.log hw_info.log installed_pkgs.log kernel-5.13.9-200.fc34.x86_64.src.rpm kernel-5.13.9-200.fc34.x86_64.rpm kernel-core-5.13.9-200.fc34.x86_64.rpm kernel-debug-5.13.9-200.fc34.x86_64.rpm kernel-debug-core-5.13.9-200.fc34.x86_64.rpm kernel-debug-debuginfo-5.13.9-200.fc34.x86_64.rpm kernel-debug-devel-5.13.9-200.fc34.x86_64.rpm kernel-debuginfo-5.13.9-200.fc34.x86_64.rpm kernel-debuginfo-common-x86_64-5.13.9-200.fc34.x86_64.rpm kernel-debug-modules-5.13.9-200.fc34.x86_64.rpm kernel-debug-modules-extra-5.13.9-200.fc34.x86_64.rpm kernel-debug-modules-internal-5.13.9-200.fc34.x86_64.rpm kernel-devel-5.13.9-200.fc34.x86_64.rpm kernel-modules-5.13.9-200.fc34.x86_64.rpm kernel-modules-extra-5.13.9-200.fc34.x86_64.rpm kernel-modules-internal-5.13.9-200.fc34.x86_64.rpm root.log state.log
Hapus semua berkas .src.rpm dengan perintah berikut:
rm *.src.rpm
Daftarnya sekarang seharusnya terlihat seperti ini:
ls -1 build.log hw_info.log installed_pkgs.log kernel-5.13.9-200.fc34.x86_64.rpm kernel-core-5.13.9-200.fc34.x86_64.rpm kernel-debug-5.13.9-200.fc34.x86_64.rpm kernel-debug-core-5.13.9-200.fc34.x86_64.rpm kernel-debug-debuginfo-5.13.9-200.fc34.x86_64.rpm kernel-debug-devel-5.13.9-200.fc34.x86_64.rpm kernel-debuginfo-5.13.9-200.fc34.x86_64.rpm kernel-debuginfo-common-x86_64-5.13.9-200.fc34.x86_64.rpm kernel-debug-modules-5.13.9-200.fc34.x86_64.rpm kernel-debug-modules-extra-5.13.9-200.fc34.x86_64.rpm kernel-debug-modules-internal-5.13.9-200.fc34.x86_64.rpm kernel-devel-5.13.9-200.fc34.x86_64.rpm kernel-modules-5.13.9-200.fc34.x86_64.rpm kernel-modules-extra-5.13.9-200.fc34.x86_64.rpm kernel-modules-internal-5.13.9-200.fc34.x86_64.rpm root.log state.log
Terakhir, instal semua paket rpm di direktori ini menggunakan dnf:
dnf install ./*.rpm
Menguji Kernel
Setelah semuanya berhasil diinstal, lakukan reboot. Kernel yang telah Anda bangun seharusnya otomatis dipilih oleh GRUB saat sistem Anda dinyalakan. Biarkan komputer melakukan boot, lalu periksa apakah masalah Anda telah teratasi.
Kembali ke Versi Sebelumnya
Jika Anda telah selesai melakukan pengujian dan ingin kembali ke kernel sebelumnya, lakukan reboot kembali. Kali ini saat GRUB muncul, pilih kernel yang lebih lama (misalnya, jika yang baru Anda bangun adalah 5.13.9, pilih 5.13.8 dari daftar) menggunakan tombol panah.
Setelah Anda masuk kembali, gunakan perintah berikut untuk membatalkan instalasi kernel tadi:
sudo dnf history undo last
Anda kemudian akan diminta untuk menghapus paket kernel yang baru saja diinstal. Jika Anda melihat paket lain, gunakan dnf history untuk menemukan transaksi yang ingin dibatalkan. Anda perlu mencari nomor di awal baris yang berisi versi kernel yang telah diinstal:
dnf history --reverse ... 24 | install ./kernel-5.13.9-200.fc34.x86_64.rpm ... ...
Nomor ini, misalnya "24", dapat digunakan untuk membatalkan instalasi melalui perintah berikut:
sudo dnf history undo 24
Akhirnya, jika Anda melakukan reboot, kernel baru (misalnya 5.13.9) tidak akan lagi muncul di GRUB, dan kernel sebelumnya akan otomatis dipilih (misalnya 5.13.8).
Want to help? Learn how to contribute to Fedora Docs ›