在嵌入式 linux 上添加 ssh
我想在 Qtopia 上執行 SSH(在我的 FriendlyARM 上)。我自己的發行版是 Ubuntu,所以我無法將 ssh 二進製文件複製並粘貼到設備中。
如果我可以複製和粘貼二進製文件,我在哪裡可以找到它?如果我必須編譯 SSH,在我的 ubuntu 中怎麼可能?
您的設備具有ARM處理器。您的 PC 具有x86處理器。ARM 和 x86 是具有不同指令集的不同處理器架構。為 x86編譯的可執行程序由 ARM 處理器無法執行的 x86 指令組成,反之亦然。
您需要一個 ARM 二進製文件。此外,您需要一個與您設備上的其他軟體兼容的 ARM 二進製文件。具體來說,您需要一個靜態連結的二進製文件(一個不依賴於其他任何東西的二進製文件)或一個與正確的系統庫連結的二進製文件。
檢查您擁有的標準庫。如果您有一個名為 的文件
/lib/ld-uClibc.so
,那麼您就有uClibc,這是一個用於嵌入式系統的小型庫。如果您有一個名為 的文件/lib/ld-linux.so.2
,那麼您就有GNU libc,它與您在 Ubuntu PC(以及任何其他非嵌入式 Linux)上擁有的庫相同。您有兩種 SSH 客戶端和伺服器可供選擇:OpenSSH和Dropbear。Dropbear 更小,但功能更少,尤其是沒有 SFTP。
如果標準庫是 Glibc,您可以從 Debian 的 ARM 發行版中獲取二進製文件。獲取
armel
客戶端或伺服器包。通過執行提取.deb
文件dpkg-deb -x openssh-….deb .
然後將二進製文件從設備複製
./usr/bin
或複製./usr/sbin
到設備。如果標準庫是 uClibc,您需要從基於 uClibc 的發行版中獲取二進製文件。Dropbear包含在許多嵌入式發行版中。Openmoko與 Qtopia 有一些淵源,在其預設安裝中包含 Dropbear。如果您要安裝多個程序,BuildRoot可以很容易地獲得交叉編譯器和建構通用程序:您幾乎只需要按照指南進行操作。