嵌入式linux編譯移植 vsftpd 原始碼修改

2022-06-22 12:21:11 字數 969 閱讀 6516

相關位址

查了那麼多版本,最終選的乙個 vsftpd-2.3.4版本,使用3.0.2或者3.0.3在執行的時候都提示段錯誤

1.編譯vsftpd-2.3.4

修改這兩個地方就可以直接編譯 make -j20

經過flashxp提示的log資訊,定位到ftp每次上傳完成都會呼叫 postlogin.c 中的函式

vim postlogin.c +912

修改為在上傳完成以後,在/tmp/下面建立乙個檔案,然後寫乙個指令碼或者程式去檢測這個資料夾下面是否生成了finish.txt檔案,就知道是不是成功的傳輸完成,我這裡需要做的就是在傳輸完成以後,給乙個sync同步命令,防止在系統突然掉電的時候30秒以內,會出現不儲存的情況

2. 檢測檔案是否完成

下面是檢測檔案是否存在的程式,也可以使用指令碼去檢測,但是指令碼的還是總是提示一些無法遮蔽,這樣在debug終端一直輸出看著不好,所以選擇使用這樣的方式,編譯以後在啟動指令碼中執行下面命令,就可以做到一直檢測

程式中延時了0.4秒,也就是傳輸完成以後在0.4秒以內就會sync,如果不延時速度更快,但是會造成cpu一直工作,相當於熱機滿載一直工作,這樣對cpu壽命有很大影響,加入了延時就可以減少cpu使用率

本來可以通過修改系統快取寫入到磁碟的時間,這樣也可以加快快取寫入,但是這樣還是治標不治本,因為大多數時候是不需要使用ft[傳輸檔案的

本來我是考慮在傳輸完成以後直接使用 system(「sync」) ,但是在使用的時候,發現使用system以後就會造成vsftp無法使用,直接不能傳輸,這是乙個很嚴重的問題,可能是system打亂了程式的機制,集體沒有研究,所以為了保持程式的完整性,最好不要使用system,我直接程式中建立乙個檔案也很簡單,而且這樣做也更加安全

嵌入式移植

深度學習嵌入式移植 1 移植原因 演算法必須在優化後的硬體上執行,因為學習成千上萬的資料可能需要長達幾周的時間。移動端其實不需要做tranning,只需要進行propagating,所以問題集中在移動端能不能存放並執行更大的network。2 常見的移動端開發裝置 nvidiajetsontx1 t...

嵌入式linux移植總結

修改並編譯核心 增加或修改arch xx mach xx.c檔案,修改machine start第乙個引數為id,在static void init xx map io void 中修改時鐘s3c24xx init clocks 12000000 修改nand資訊在static struct mtd...

嵌入式 linux 編譯

第二次換了編譯環境編譯時又提示 make 3 drivers video console vgacon.o 錯誤 1 在網上搜尋結果 根據資訊的大概意思是關於vga的支援問題,在這裡我直接把關於vga的配置選項去掉不選,即 在執行 make menuconfig 配置時 不選vga 驅動。devic...