Kernel Linux hang di 'Switching to clocksource tsc "pada Pentium 4

11

Perangkat Keras: Dell Dimension 4500S : i845G, Pentium 4, stok + 2GB RAM dan pembaruan BIOS terbaru (sekitar 2002).

Saya telah membangun sistem Linux dari sumber, sejauh ini LFS 7.0 menurut buku. Kernel pertama yang saya bangun berfungsi dengan baik, tetapi memiliki banyak fluff dan bloat, jadi saya sekarang mengoptimalkan kernel untuk perangkat keras target saya (lihat di atas).

Upaya konfigurasi terbaru saya, dan beberapa variasi coba-coba, terus tergantung pada pernyataan printk "Beralih ke clocksource tsc". Kernel "baik" saya tidak pernah mengalami masalah ... ini adalah versi 3.1.0 btw. Keduanya sedang dibangun dari source yang sama, tidak ada patch, make mrproper, make menuconfig, dll, jadi jelas aku hanya kehilangan beberapa kunci CONFIG_XXXbendera.

Saya sudah menatap masalah ini selama lebih dari satu hari sekarang, dan saya telah membangun kernel yang tahu berapa kali, tetapi tidak berhasil.

Satu hal yang menurut saya menarik adalah dengan kernel yang saya dapatkan:

# cat /sys/devices/system/clocksource/clocksource0/current_clocksource
tsc

juga, mungkin berguna untuk mengetahui ....

# cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc acpi_pm

Saya sudah mencoba konfigurasi pembangunan dengan berbagai opsi, tetapi pada titik ini saya tidak dapat mengingat secara spesifik jadi tolong jangan bertanya. Dari pencarian saya, saya telah menemukan dan menguji beberapa parameter kernel, seperti clocksource=pitdan notsc, tetapi semua ini gagal juga. Sekali lagi, saya berharap saya telah menuliskan setiap hal yang saya coba sejauh ini, melihat ke belakang ...

Sebagian besar contoh forum adalah untuk kernel 2.x dan diselesaikan dengan beberapa variasi opsi boot, tetapi kernel saya yang baik hanya menggunakan root=/dev/sdaX ro. Jadi saya tahu saya keemasan dengan kombinasi hardware dan kernel 3.1.0 ini jika saya dapat menemukan konfigurasi build yang tepat.

Juga, sebagian besar orang di luar sana yang telah memposting masalah yang sama mengatakan bahwa setelah beberapa menit sistem akan terus memuat dan semuanya sangat bagus. Saya sudah membiarkannya cukup lama untuk memasak makan malam dan masih belum melanjutkan memuat.

Saya berharap salah satu dari Anda guru akan membaca ini dan berkata "hei ya saya baru saja mengatur CONFIG_XXX = y pada dinosaurus P4 saya dan itu bekerja dengan baik." :)

Biarkan saya tahu apa yang Anda perlu saya coba atau periksa, saya akan dengan senang hati memposting hasilnya.

rfmodulator
sumber
@tripleee Di mana saya dapat melihat informasi itu ... alasan di balik pemungutan suara tertutup?
rfmodulator
Mungkin Anda tidak bisa, reputasi Anda mungkin tidak cukup. Bagaimanapun, karena ini tidak berhubungan dengan pemrograman, masuk akal untuk bergerak, tetapi yang diperlukan hanyalah beberapa suara yang lebih dekat. Saya akan menambahkan milik saya juga.
tripleee
Saya menghadapi masalah serupa dengan kernel baru dengan Pentium 4. Semuanya berfungsi jika saya menonaktifkan hyperthreading. Menghabiskan dua malam debugging, belum yakin tentang detail.
choroba
@ choroba nohttidak melakukannya untuk saya. Beri tahu saya jika Anda memiliki ide lain.
rfmodulator
Bahkan, saya harus mematikan ht di level BIOS, atau menentukan acpi=off.
choroba

Jawaban:

8

Dari pencarian cepat masalah ini tampaknya memiliki cukup banyak alasan yang mungkin, dan tampaknya menunjukkan fakta bahwa default kernel baru Anda untuk clock-source salah untuk motherboard Anda.

Satu saran yang berhasil untuk beberapa adalah menggunakan clocksource=hpetatau clocksource=acpi_pm.

Di utas lain , seseorang memperbaiki ini clocksource=jiffies, yang lain menyarankan untuk mencoba noapicatau nolapic, yang lain untuk mematikan acpi di BIOS, dan yang lain menyalahkan touchpad Synaptics dan memperbaiki masalahnya dengan menghapus Xorg.conf.

Satu kernel builder memperbaiki masalahnya dengan mengkompilasi ulang initrd tanpa fbcondecor.

Semoga ini bisa membantu, karena tampaknya masalah ini dapat memiliki banyak penyebab.

harrymc
sumber
Terima kasih atas jawaban Anda, namun saya mencari opsi konfigurasi kernel build yang akan menyebabkan (atau mencegah) hang saat boot yang saya amati, bukan penyelesaian. Saya telah mencoba semua parameter boot yang relavent ( clocksource=, no*, dll.) Yang dicatat di berbagai utas forum, tanpa efek. Saya melakukan expriments ini dalam upaya untuk mempersempit masalah saya yang sebenarnya. Saya sudah memiliki kernel yang melakukan booting sempurna tanpa parameter khusus (selain dari root=dan ro) dibangun dari pohon sumber yang sama, tetapi kernel ini mengandung lebih banyak hal yang tidak saya butuhkan, daripada yang saya lakukan ...
rfmodulator
... kecuali satu CONFIG_bendera kunci yang akan menyelesaikan masalah saya.
rfmodulator
Apakah mungkin masalah Anda adalah Anda telah mematikan terlalu banyak opsi kernel?
harrymc
Tepat. :) Itulah jawaban yang saya cari, apa yang telah saya nonaktifkan yang sebenarnya dibutuhkan. Saya sudah melakukan ini beberapa kali tanpa perubahan hasilnya.
rfmodulator
Saya tidak dapat membantu Anda dengan satu kata ajaib. Sepertinya clocksource Anda saat ini adalah acpi_pm, tetapi Anda perlu mempelajari sumber-sumber kernel untuk mencari tahu dengan konfigurasi kernel yang Anda ikuti. Opsi lainnya adalah kembali ke konfigurasi yang berfungsi dan mematikan opsi secara bertahap untuk menemukan masalah. Untuk "menghibur" Anda, saya juga bisa mengatakan bahwa ini mungkin bukan satu pilihan tetapi beberapa, yang berarti konflik atau kombinasi konfigurasi yang tidak dapat dijalankan atau ketergantungan yang tidak didokumentasikan.
harrymc
0

Saya mendapat masalah yang sama persis di sini dan membaca BANYAK. @harrymc melakukan ringkasan yang cukup bagus.

Saya hanya akan menambahkan 2 hal yang saya pelajari dari penelitian saya:

  • Masalahnya berasal dari kernel Linux Anda yang tidak tahu bagaimana menangani prosesor Anda karena tidak tahu apa jam pemrosesan Anda. Anda dapat mengamati ini dengan memeriksa log boot kernel. Sepertinya kernel sedang mencoba untuk mengukur jam pemrosesan Anda (bagi saya itu seperti "2997.1333" tetapi setiap boot berubah menjadi "2997.1445", "2997.1379", ...).

  • Setelah mencoba banyak hal, akhirnya saya sampai di sini dan mencari tahu tentang BIOS. Milik saya adalah GYGABITE UEFI. Saya mengatur parameter kembali ke "Pengaturan default yang dioptimalkan" dan mengatur "Teknologi Virtualisasi Intel" menjadi "diaktifkan".

Sekarang, semuanya kembali normal untuk saya! Semoga ini bisa membantu.

MaximeBernard
sumber
0

Beberapa sen dari saya, tidak yakin apakah itu hal biasa atau tidak, tetapi saya dapat membuat Ubuntu berfungsi dengan menonaktifkan 'timer presisi tinggi' di BIOS. MB saya adalah gigabyte z77x-d3h

Oxy
sumber
Sistem OP tidak mendukung Timer Acara Presisi Tinggi. Itu diperkenalkan pada 2005, dan sistem poster aslinya sudah ada beberapa tahun sebelumnya.
ChrisInEdmonton
-2

Saya memperbaiki masalah dengan menambahkan kernelparameter berikut:

noapic
Kiroe
sumber
5
Selamat datang di Pengguna Super. Bisakah Anda memperluas jawaban Anda dengan menjelaskan apa yang dilakukan / bagaimana ini menyelesaikan masalah OP?
Saya katakan Reinstate Monica
tidak sry, hanya bermain-main dengan parameter kernel.
Kiroe