1. 程式人生 > >嵌入式Linux下RTC時間的讀寫

嵌入式Linux下RTC時間的讀寫

參考資料

首先下載ntp的原始碼

解壓縮之後,編譯:

./configure --prefix=/opt/ntp-arm --exec-prefix=/opt/ntp-arm  --host=arm-linux --enable-all-clocks --enable-parse-clocks && make && make install

將生成的bin目錄和lib目錄(lib目錄好像是空的)拷貝到開發版上面。

編譯pc版本:

./configure --prefix=/opt/ntp-PC --exec-prefix=/opt/ntp-PC --enable-all-clocks --enable-parse-clocks  && make && make install

一般來說編譯都會很順利。於是,我們剩下的任務就是來寫配置檔案,進而來使用了。

主要用到ntp.conf檔案,可以參考下面的文章

下面來講述如何進行ntp伺服器架設。

首先,選擇一臺伺服器作為ntpserver,編寫ntp.conf檔案如下:

[email protected]:/etc$ cat /etc/ntp.conf 

#restrict default nomodify notrap noquery

restrict 127.0.0.1

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

server  127.127.1.0     # local clock

fudge   127.127.1.0 stratum 5

driftfile /var/lib/ntp/drift

broadcastdelay  0.008

keys            /etc/ntp/keys

主要的幾句話就是stratum 5  是5層的意思(這個說實話,我也不知道啥意思,但是,經過查閱資料,應該就設為這個數),高了不行。 然後,執行ntpd /etc/ntp.conf,ntp服務就執行起來了。(可以使用ps -aux | grep ntp來看看是否啟動了) 隨後,在客戶端執行ntpdate 伺服器ip就可以。如 ntpdate 192.168.1.1 如果遇到錯誤,可以執行ntpdate -d 192.168.1.1 -d是debug模式的意思,這樣就可以看出中間哪一步出問題了。 不要忘了使用hwclock命令,把時間寫入bios

hwclock -w  如果想定時更新的話,需要用到crontab,這個命令幹啥用的,可以自行百度。基本上就是定時執行任務的東東。 在終端輸入crontab -e 如果出現

" chdir(/var/spool/cron/crontabs): No such file or directory"錯誤,

執行 mkdir /var/spool/cron/crontabs  建立即可。我是這麼寫的:

mkdir -p /var/spool/cron/crontabs #for crontab use                              

echo '*/2 * * * * /ntp-arm-bin/ntpdate 192.168.1.1' > /var/spool/cron/crontabs/r

oot                                                                             

crond & #start cron daemon

關於crontab也可以參考


相關推薦

嵌入式LinuxRTC時間

參考資料 首先下載ntp的原始碼 解壓縮之後,編譯: ./configure --prefix=/opt/ntp-arm --exec-prefix=/opt/ntp-arm  --host=arm-linux --enable-all-clocks --enable-parse-cloc

LinuxRTC時間分析

系統時間:是由主晶片的定時器進行維護的時間,一般情況下都會選擇晶片上最高精度的定時器作為系統時間的定時基準,以避免在系統執行較長時間後出現大的時間偏移。特點是掉電後不儲存。 RTC時間:是指系統中包含的RTC晶片內部所維護的時間。RTC晶片都有電池+系統電源的雙重供電機制,在系統正常工作時由系統供電,在

Linux測試磁碟速度

 1.測/目錄所在磁碟的純寫速度: time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file 2.測/目錄所在磁碟的純讀速度: time dd if=/1Gb.file bs=64k |dd of=/dev/null

linux訪問並windows端共享資料夾

Windows端(win8.1): 右鍵點選資料夾-->共享-->特定使用者-->everyone-->新增-->許可權改為“讀取/寫入”-->點選共享 linux端(ubuntu16.04): 簡介:Windows共享資料夾使用的協議是SMB/CIFS。因

Linuxpthread的鎖的優先順序問題

有這麼一個情況:有一個C實現的HashMap,需要在多個執行緒之間共享。對它的讀操作遠遠大於寫操作。所以採用了pthread的讀寫鎖來保障併發讀寫時的一致性。 現在測試發現的問題是:因為讀操作太多,導致寫操作一直拿不到鎖。按理說不應該啊,假如有三個執行緒,執行緒1 先申

linux裝置檔案例項

一般在linux下裝置分為字元裝置和塊裝置。字元裝置是指裝置傳送和接收資料以字元的形式進行;而塊裝置則以整個資料緩衝區的形式進行。在linux下對任何的操作可以看成是對裝置的操作。簡單而言之,可以是看成對裝置檔案的讀寫操作。那麼,怎樣對linux 的裝置檔案進行讀寫呢?我們通

Linux實現 以方式掛載NTFS格式磁碟 使用ntfs-3g

     在裝有雙系統的主機上,Linx下掛載windows系統下的磁碟很有必要,可以使用mount命令來實現。      mount命令的格式為:                      mount [選項] <-t 型別> [-o 掛載選項] <裝置&

linuxaio非同步詳解與例項

1.為什麼會有非同步I/O aio非同步讀寫是在linux核心2.6之後才正式納入其標準。之所以會增加此模組,是因為眾所周知我們計算機CPU的執行速度遠大於I/O讀寫的執行速度,如果我們用傳統的阻塞式或非阻塞式來操作I/O的話,那麼我們在同一個程式中(不用多執

測試linux磁碟的速率

1) 通過df -h命令檢視磁碟情況 Filesystem            Size  Used Avail Use% Mounted on /dev/sda4             289G   61G  214G  23% / tmpfs            

linuxI2C的

1.在linux下提供另種I2C讀寫方式:  a.  一種是帶暫存器讀寫的方式。(因為很多I2C裝置的操作都是讀寫暫存器,所以Linux提供了這樣一種介面)  b.一種是純粹的資料傳送。(a實際上呼叫的是b來實現) a.方式的實現: 以下這個結構體,定義在#include

Linux C,文件函數

err urn view stdlib.h ungetc put stream end linu C標準庫提供的用於讀寫文件的函數非常多,大多數函數都在stdio.h中聲明. fread/fwrite,fgets/fputs,fgetchar/fputchar,fprint

Linuxntp時間同步

span ntpd usr pan style root用戶 linu date命令 軟件 在root用戶下執行 先安裝同步時間軟件,每臺機器執行 yum install -y ntp 然後執行以下命令: crontab -e */10 * * * * /usr/sbin/

linux shell 之終端文件數據流和重定向>,<,<<,>>

運行 文件的 方式 ech 描述符 run 傳遞 實例 pan 終端實現文件中數據流的讀寫; 重定向命令列表如下: 命令說明 command > file 將輸出重定向到 file。將終端數據寫到文件file中 command < file 將輸入重定

Linux的企業-Mysql分離,組的復制Group-based Replication(2)

mysql讀寫分離 組的復制 基於組的復制(Group-based Replication)是一種被使用在容錯系統中的技術。Replication-group(復制組)是由能夠相互通信的多個服務器(節點)組成的。在通信層,Group replication實現了一系列的機制:比如原子消息(atomic

linux 多線程文件

stat blog 利用 sys 文件描述 clu 16px urn for linux 下多線程給文件加排他鎖 利用flock 函數,具體用戶請自己查。 執行流程 1,創建 /dev/shm/test文件,並打開文件。 2,fork 一個子進程 在子進

linux時間修改

linux下的時間修改linux系統有兩個時間,一個是系統時間,另一個是cmos時間。需要把兩個時間都調對!方法一:修改系統時間(1).用root登錄,用date命令調好系統時間date -s "2017/11/10 10:20:00" 把系統時間改為17年11月10號10點20分這個修改在系統重啟後就失效了

linux塊設備流程

臨時 無效 rect patch 得到 喚醒 處理 字符 構建 在學習塊設備原理的時候,我最關系塊設備的數據流程,從應用程序調用Read或者Write開始,數據在內核中到底是如何流通、處理的呢?然後又如何抵達具體的物理設備的呢?下面對一個帶Cache功能的塊設備數據流程進行

嵌入式LinuxQt的中文顯示

tdi IT too file ron main.c nts 環境變量 copy 一般情況下,嵌入式Qt界面需要中文顯示,下面總結自己在項目中用到的可行的辦法 1,下載一種中文簡體字體,比如我用的是”方正準圓簡體“,把字體文件放在ARM開發板系統的Qt字庫中,即/usr/l

Linux python3 configparser包ini,並解決ini小寫的問題

匯入包: import configparser #匯入 configparser包 class iniParser(configparser.ConfigParser): def __init__(self, defaults=None): configpars

linux時間同步和時間管理

一、chronyd 服務 該服務是時間同步服務,類似與windows中的自動與網路時間同步的功能,在linux中這個時間同步是確定客戶主機使用的時間同步服務的,在chronyd.service 服務中載入時間源地址,配置檔案在/etc/chrony.conf 1.首先需要傳送方編輯配置檔案,第 第2