通過adb查看。串口列印中通過指令查看,查看linux命令中系統燃明枝自帶串口驅動的時鍾頻率通過adb查槐純看。Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務皮敏、支持多線程和多CPU的操作系統。
Ⅱ 為什麼linux上的時間不準
轉換誤差2. 時鍾不穩定3. 時鍾頻率不對
Ⅲ linux下的幾種時鍾和定時器機制
1. RTC(Real Time Clock)
所有PC都有RTC. 它和CPU和其他晶元獨立。它在電腦關機之後還可以正常運行。RTC可以在IRQ8上產生周期性中斷. 頻率在2Hz--8192HZ.
Linux只是把RTC用來獲取時間和日期. 當然它允許進程通過對/dev/rtc設備來對它進行編程。Kernel通過0x70和0x71 I/O埠來訪問RTC。
2. TSC(Time Stamp Counter)
80x86上的微處理器都有CLK輸入針腳. 從奔騰系列開始. 微處理器支持一個計數器. 每當一個時鍾信號來的時候. 計數器加1. 可以通過匯編指令rdtsc來得到計數器的值。通過calibrate_tsc可以獲得CPU的頻率. 它是通過計算大約5毫秒里tsc寄存器裡面的增加值來確認的。或者可以通過cat /proc/cpuinfo來獲取cpu頻率。tsc可以提供比PIT更精確的時間度量。
3. PIT(Programmable internval timer)
除了RTC和TSC. IBM兼容機提供了PIT。PIT類似微波爐的鬧鍾機制. 當時間到的時候. 提供鈴聲. PIT不是產生鈴聲. 而是產生一種特殊中斷. 叫定時器中斷或者時鍾中斷。它用來告訴內核一個間隔過去了。這個時間間隔也叫做一個滴答數。可以通過編譯內核是選擇內核頻率來確定。如內核頻率設為1000HZ,則時間間隔或滴答為1/1000=1微秒。滴答月短. 定時精度更高. 但是用戶模式的時間更短. 也就是說用戶模式下程序執行會越慢。滴答的長度以納秒形式存在tick_nsec變數裡面。PIT通過8254的0x40--0x43埠來訪問。它產生中斷號為IRQ 0.
下面是關於pIT裡面的一些宏定義:
HZ:每秒中斷數。
CLOCK_TICK_RATE:值是1,193,182. 它是8254晶元內部振盪器頻率。
LATCH:代表CLOCK_TICK_RATE和HZ的比率. 被用來編程PIT。
setup_pit_timer()如下:
spin_lock_irqsave(&i8253_lock, flags);
outb_p(0x34,0x43);
udelay(10);
outb_p(LATCH & 0xff, 0x40);
udelay(10);
outb (LATCH >> 8, 0x40);
spin_unlock_irqrestore(&i8253_lock, flags);
4. CPU Local Timer
最近的80x86架構的微處理器上的local apic提供了cpu local timer.他和pit區別在於它提供了one-shot和periodic中斷。它可以使中斷發送到特定cpu。one-shot中斷常用在實時系統裡面。
Ⅳ Linux內核dvfs之cpufreq配置
本文基於 RockPi 4A 單板 Linux4.4 內核介紹 OPP Table 。
內核中將頻咐游率、電壓的相關配置放在 DTSI 文件中,這些配置信息組成的節點被稱為物簡遲 OPP Table(Operating Performance Points) 。
定義文件: arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi ,內容如下:
上面節點中的相關屬性含義如下:
1、 opp-shared :表示 opp-table1 是小核的各 CPU 共用。
2、 rockchip,temp-hysteresis :遲滯參數,防止頻繁進入高溫或低溫,單位:毫攝氏度。
3、 rockchip,low-temp :低溫閾值。小於該值時,進入低溫,大於『該值+遲滯參數』時,恢復常溫。
4、 rockchip,low-temp-min-volt :低溫下最低電壓,單位:微伏。
5、 nvmem-cells :從 eFUSE 中讀取相關信息值(小核漏電流)。
6、 rockchip,pvtm-voltage-sel :min-pvtm(單位KHz)、max-pvtm(單位KHz)和 voltage-selector (用於匹配 opp 節點中 opp-microvolt-L* 屬性的序列號)。例:pvtm值為:0 ~ 143500 使用 opp-microvolt-L0 ,143501 ~ 148500使用 opp-microvolt-L1
7、 rockchip,pvtm-freq :時鍾頻率(KHz),在獲取 pvtm 的頻率前,先設置 CPU 頻率。
8、 rockchip,pvtm-volt :電壓(微伏),在獲取 pvtm 的頻率前,先設置 CPU 電壓。
9、 rockchip,pvtm-ch : PVTM 通道,格式<通道號 sel的序號>
10、 rockchip,pvtm-sample-time : PVTM 采樣時間,單位:毫秒。
11、 rockchip,pvtm-number : PVTM 采樣個數。
12、 rockchip,pvtm-error :允許采樣數據之間的誤差。
13、 rockchip,pvtm-ref-temp :參考溫度。
14、 rockchip,pvtm-temp-prop : PVTM 隨溫度變化的比例系數,格式<小於參考溫度的比例系數 大於參考溫度的比例系數>。
15、 rockchip,thermal-zone :獲取溫度的 thermal-zone 。
16、 opp-microvolt-L* :電壓(微伏),格式<target min max>
17、 clock-latency-ns :完成變頻需要的時間,單位:納秒。
在 RK3399 中,除了配置上述小核的 opp table 外,還設置了大核( cluster1_opp )、 gpu(gpu_opp_table) 等的相關值。查看命令如下:
註:
CPU PVTM(Process Voltage Temperature Monitor) 是一個位於 CPU 附近,能罩李反應出不同晶元之間性能差異的模塊,受工藝,電壓和溫度 的影響。
參考:
Documentation/devicetree/bindings/cpufreq/cpufreq-rockchip.txt
Documentation/devicetree/bindings/cpufreq/cpufreq-rockchip.txt
Ⅳ Linux裡面chrony原理是什麼
Chrony是NTP(Network Time Protocol,網路時間協議,伺服器時間同步的一種協議)的另一種實現,與ntpd不同,它可以更快且更准確地同步系統時鍾,最大程度的減少時間和頻率誤差。
在CentOS6中,默認是使用ntpd來同步時間的,但ntpd同步時間並不理想,有可能需要數小時來同步時間。而且ntp也已經很老了。所以在Centos7中換成了chrony來實現時間同步。chrony並且兼容ntpd監聽在udp123埠上,自己則監聽在udp的323埠上。
如果在chrony配置文件中指定了ntp伺服器的地址,那麼chrony就是一台客戶端,會去同步ntp伺服器的時間,如果在chrony配置了允許某些客戶端來向自己同步時間,則chrony也充當了一台伺服器,所以,安裝了chrony即可充當客戶端也可以充當服務端。一般我們只需要做客戶端就好,不需要對外提供時間同步功能。
一、chrony是兩個用來維持計算機系統時鍾准確性的程序,這兩個程序命名為chronyd和chronyc。
chronyd是一個在系統後台運行的守護進程。主要用於調整內核中運行的系統時間和時間伺服器同步,他根據網路上其他時間伺服器時間來測量本機時間的偏移量從而調整系統時鍾。對於孤立系統,用戶可以手動周期性的輸入正確時間(通過chronyc)。在這兩種情況下,chronyd決定計算機快慢的比例,並加以糾正。chronyd實現了NTP協議並且可以作為伺服器或客戶端。
chronyc是用來監控chronyd性能和配置其參數的用戶界面。他可以控制本機及其他計算機上運行的chronyd進程。
服務unit文件: /usr/lib/systemd/system/chronyd.service
監聽埠: 323/udp,123/udp
配置文件: /etc/chrony.conf
二、chrony 的優勢:
更快的同步,從而最大程度減少了時間和頻率誤差,對於並非全天 24 小時運行的虛擬計算機而言非常有用
能夠更好地響應時鍾頻率的快速變化,對於具備不穩定時鍾的虛擬機或導致時鍾頻率發生變化的節能技術而言非常有用
在初始同步後,它不會停止時鍾,以防對需要系統時間保持單調的應用程序造成影響
在應對臨時非對稱延遲時(例如,在大規模下載造成鏈接飽和時)提供了更好的穩定性
無需對伺服器進行定期輪詢,因此具備間歇性網路連接的系統仍然可以快速同步時鍾
Ⅵ 怎麼看linux內核版本跟時鍾中斷的頻率
內核版本可以通過命令:uname -r 看到
至於時鍾頻率,就要看編譯內核時選擇的值,如:
最下面就是配置的100,如果沒有手動更改的話,可以去內核的param.h中找到定義
Ⅶ 為什麼linux上的時間不準
每台機器都可能有時間不準的情況的。windows也一樣,你可以在linux下輸入時間同步命令來與Internet上的時間伺服器同步一下就可以了:
ntpdate pool.ntp.org