• 追加された行はこの色です。
  • 削除された行はこの色です。
  • smp/4.11-FAQ へ行く。

 #freeze
 * FAQ [#bfab1330]
 ** Q.1 時計が進む [#gb5fe531]
 SMP環境だと、CPUクロックを誤認識するようです。そのため、時計が狂ってしまいます。
 
 FreeBSDの時計は、kern.timecounter.hardwareで選択された Timecounterの値を使います。Rv20/Rs20, RvII26/RsII26の場合は、i8254になっているハズです。i8254の値は、machdep.i8254_freqから参照や変更ができます。そこで、この値を直接変更することで、時計の進み具合を速くしたり遅くしたりできます。ntpdateを使いながら、適切な値を設定してください。
 
 筆者の環境では、以下のように設定することで時計が正常に動くようになりました。
 
  # dmesg | head
  Copyright (c) 1992-2005 The FreeBSD Project.
  Copyright (c) 1994-2005 FreeBSD(98) porting team.
  Copyright (c) 1992  A.Kojima F.Ukai M.Ishii (KMC).
  Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
          The Regents of the University of California. All rights reserved.
  FreeBSD 4.11-RELEASE-p16 #0: Wed Sep 13 18:51:03 JST 2006
      furusawa@nextfoods.jp:/usr/src/sys/compile/SMP
  Timecounter "i8254"  frequency 1996800 Hz
  CPU: Pentium Pro (161.65-MHz 686-class CPU)
    Origin = "GenuineIntel"  Id = 0x619  Stepping = 9
  
  # sysctl kern.timecounter.hardware
  kern.timecounter.hardware: i8254
  
  # sysctl machdep.i8254_freq
  machdep.i8254_freq: 1996800
  
  # sysctl machdep.i8254_freq=2456500
  machdep.i8254_freq: 1996800 -> 2456500
 
 
 ** Q.2 シングルCPUなのに、普通のカーネル(GENERICなど)が動きません! [#te8362e2]
 Rs20, RsII26は、APICに固定されているためです。これらの2機種では、SMPカーネルを使うことにより、動作する可能性があります(試したことはないですが、おそらく動くはずです)。Rv20, RvII26は、BIOSから従来の互換モードに設定することで、GENERIC kernelが立ち上がります。
 
 ''Table.1'' 恐らく、こんな感じ...
 ,CPU,APIC,GENERIC kernel, SMP kernel
 ,Single,×,○,×
 ,Single,○,×,○
 ,Dual,×,○,×
 ,Dual,○,×,○
 
 ** Q.3 質問を追加してください [#ee388e12]