ARM移植ntp(先移植openssl)

2021-08-28 14:57:04 字數 1241 閱讀 9408

makefile中cc/ar等路徑引用是通過cross_compile字首索引的,所以只要設定cross_compile的值為你的交叉編譯器字首即可,如:」arm-none-linux-gnueabi-「

要刪掉cflags中-m32選項,(我的)交叉編譯器沒有此選項。

make install後,到安裝目錄的bin目錄下,看到有openssl和c_rehash兩個可執行檔案,我們執行下./openssl,如果提示檔案格式錯誤,說明設定的交叉編譯器起作用了,再把openssl複製到目標板上,加上許可權,執行下,如果進入openssl命令列下,說明openssl移植就ok了。

使用:把lib目錄下的libcrypto.*和libssl.*檔案複製到目標板使用者庫檔案位置,確保上電後應用程式可以訪問到。

注:通過apt-get sourse獲取的原始碼,編譯成so檔案後,在編譯ntp時一直出錯(libcrypto不相容、dlopen等函式未宣告等各種問題,後來用上面這個原始碼一次就成功了)

編譯器相關配置更改後,在make之前先make clean,避免出現新舊兩種平台目標檔案重疊,從而ld命令提示檔案格式錯誤之類提示。

configure命令來自參考1;mod_nano定義來自參考2;

我的配置命令:

執行完configure命令後,開啟makefile檔案確認下cc等是否程式設計我們期待的交叉編譯器路徑。

使用:將ntpdate目錄下的ntpdate檔案複製到目標板上並新增執行許可權,確保上面的openssl庫檔案已經存在且ntp server服務已開啟!執行」ntpdate ntp-server-ip」命令,觀察執行結果。

正常執行結果:

缺少openssl的執行結果:

在arm板上執行ntpdate命令,對應的提示為:」 no server suitable for synchronization found」

此版本ntp不能用openssl-0.9.8,編譯時會提示"nid_cmac undeclared",在發現是老版本的openssl的evp.h中缺少對nic_cmac的巨集定義,暫時不能用!

ntp依賴的crypto在openssl中有,不用再去移植。

如果ntpdate會造成阻塞的話,需要在指令碼裡執行ntpdate命令前判斷網路通斷情況:

——ping -c1 -w3 hostname #ping一次,超時時間3s,$?=0繼續執行ntpdate,否則不執行;

移植 NTP客戶端 到ARM

ntp 時間同步客戶端 tar xvf ntp 4.2.6p5.tar.gz cd ntp 4.2.6p5 configure host arm linux make 把ntpdate ntpdate可執行檔案拷貝到板子的 usr bin 下面,做為客戶端,只要這個,其他的都非必須 板子上執行 nt...

openwrt libubox 移植到ARM上

由於專案的需要,需要把openwrt 上的libubox庫移植到arm上,libubox是openwrt的基礎庫,是乙個事件驅動庫,具體的可以到openwrt官網上去了解。宿主機為 ubuntu 10.04 交叉編譯工具鏈版本為 arm linux gcc 4.5.1,目標機為 s3c6410 s5...

sqlite移植到arm(一)

虛擬機器 redhat 5 arm linux gcc 3.4.6 專案需要 這個社群看看有沒有。2 將tar包放在虛擬機器的 opt下,解壓,並在同級目錄下建立build資料夾,用來放之後產生的四個包。3 進入解壓後的資料夾,執行 4 之後執行 5 最後執行 這個時候,你剛才建立的build資料夾...