在前一篇文章nanopim3檔案系統製作-支援telnet及tftp功能的檔案系統基礎上,本文將新增必要的動態庫。並支援ssh,scp等功能。
在根檔案系統中建立lib目錄。
然後從交叉編譯工具鏈的目錄4.9.3/arm-cortexa9-linux-gnueabihf/sys-root查詢依賴的動態庫,並模仿sys-root目錄建立對應的軟連線。(或者全部拷貝到檔案系統的對應目錄)
經過測試,發現執行ssh功能所需要的最少動態庫如下圖所示:
我們可以嘗試編譯乙個動態鏈結的程式,獲取/etc/passwd內容的乙個示例程式。選擇這個測試內容的原因是
ssh命令會讀取這個檔案,它依賴的動態庫也多,所以如果ssh命令執行正常,那麼新增的動態庫就基本齊全了。
測試結果如下
進入原始碼目錄,
openssh-7.6p1
配置相關資訊,
./configure --host=arm cc=arm-linux-gcc --with-cflags --prefix=/home/opt
編譯,make -j8
安裝到--prefix指定目錄,
make install
如果中途出現如下這個錯誤,可以修改當前makefile,strip_opt=-s去掉-s即可。
能看到可執行程式都成功安裝到指定目錄/home/opt就可以了,後面的錯誤可以不用理會。因為那是設定金鑰相關的。arm的程式在x86上面執行報錯也是正常的。
將opt目錄下的資料夾拷貝到根目錄下,如下圖所示:
執行命令ssh-keygen -a生成金鑰,
[root@nanopi3 download]#ssh-keygen -a
ssh-keygen: generating new host keys: rsa dsa ecdsa ed25519
由於之前配置了目錄--prefix=/home/opt,ssh-keygen和sshd預設都會到目錄/home/opt建立金鑰、查詢配置檔案。所以可以將opt/etc/目錄下的檔案拷貝到/home/opt/etc目錄下。
然後將sshd服務開啟之前,需要建立/var/empty目錄,
[root@nanopi3 download]#/sbin/sshd
privilege separation user sshd does not exist
貌似root使用者開不起來。(暫時沒有解決,後期公升級版本再檢視)。我們在這裡新增乙個使用者nano,
並嘗試登入ssh [email protected],發現登入成功。
那麼連線外網就可以登入了。
6 檔案系統
root edaserver1 ls bin boot dev etc home lib lib64 lost found media misc mnt net opt proc root sbin selinux srv sys tftpboot tmp usr var bin所有賬號命令,二進位...
4 14 檔案系統
為了說明檔案鏈結的概念,先要介紹unix檔案系統的基本結構。同時,了解i節點和指向i節點的目錄項之間的區別也是很有益的。目前,正在使用的unix檔案系統有多種實現。例如,solaris支援多種不同型別的磁碟檔案系統 傳統的基於bsd的unix檔案系統 稱為ufs 讀 寫dos格式軟盤的檔案系統 稱為...
13 檔案系統
檔案系統 檔案系統是作業系統用於管理磁碟上檔案的方法和資料結構,簡單來說就是磁碟上如何組織檔案的方法 常用的兩種檔案系統ntfs和fat32區別 ntfs fat32 磁碟分割槽容量 2t 32g 單個檔案容量 4g以上 最大4g efs加密 支援 不支援 磁碟配額 支援 不支援ntfs和fat32...