很早之前我(作者)就想深入學習Linux,但時間有限,并且Linux門檻挺高,不是很容易上手。最近由于隧道項目中用到嵌入式Linux(Arm CPU上的Linux),并且提供硬件的單位針對Linux的編程收費很高,并且時間很長,所以猶豫再三,決定開始深入學習Linux,并在學習過程中完成預定的任務。
沒有想到,在嵌入式Linux上運行一個最簡單的“Hello Liunx”程序就費了很大的周折,不過功夫不負有心人,經過幾天的艱難跋涉,總算成功了,下面我把我的歷程說一下,給后來人有個參考。
要想在嵌入式Linux運行程序,需要有下面幾個問題解決:
1、 需要一個基于Arm的gcc交叉編譯器;
2、 需要Windows與VPC上的Linux進行交互,以便交換文件;
3、 嵌入式Linux系統需要和VPC上的Linux系統或Windows系統進行交互,以便交互文件;
第一個問題,相對比較容易解決,直接和中間廠商要來了cross-2.95.3.tar.bz2 安裝包,這是一款基于Arm平臺上的交叉編輯器。直接解壓到任意目錄即可。
第二個問題,有些棘手,查了若干資料,終于找到可行的辦法。
1、 在Windows XP建一個共享文件夾,如“share”
2、 虛擬機運行起來后,在Linux命令行方式輸入:smbmount //ip地址或計算機名/共享文件夾名 掛載點
3、 Ok,連接成功。
第三個問題,原想著很容易,卻沒有想到是最難的,中間廠商的辦法如下:
采用目標板掛載NFS目錄的方式進行開發
主機:NFS服務器
1、 修改配置文件etc/exports,如
/nfs/rootfs 192.168.0.X(rw,sync,no_root_squash) //具體含義略
2、 配置其為所有用戶可讀,chmod 644 /etc/exports
3、 讓NFS服務器重新載入 etc/exports, /etc/init.d/nfs reload
4、 檢查防火墻,不要屏蔽相應端口
目標板:內核需要支持NFS
1、Enable:
File Systems à
Network File Systems à
NFS file system support
Provide NFSv3 client support
配置完后,重新編譯內核
2、目標板啟動后,mount –t nfs 192.168.0.Y:/nfs/rootfs/mnt –o nolock
按上面一步步做了,目標板提示RPC什么錯誤之類,上網查資料,用Servers指令開啟服務,很可惜,目標板不支持Servers指令。
最后發現目標板支持FTP服務器,總數找到一個救命稻草,不過很可惜,用戶密碼未知,問了中間廠商,用戶和密碼仍然錯誤,最后打了n次電話,告訴可以在目標板上添加新用戶,然后再登錄FTP。
很恐怖的是,書本上教的useradd竟然沒有,后來查看目標板bin上的文件,原來是adduser命令,添加上用戶,果然可以登錄了。不過linux上的FTP客戶端不好使,Windows自帶的也不行,只好下了個FlashFXP軟件,還可以。
在虛擬機的Liunx系統編寫如下程序:
#include
int main(int argc,char **argv)
{
printf("hello linux/n");
}
編寫Makefile文件
all:tt
tt: test.c
/usr/local/arm/2.95.3/bin/arm-linux-gcc -o tt test.c
clean:
-rm -rf tt
在命令行運行Make指令,生成tt文件
把tt文件通過FTP客戶端拷貝到目標板上。
開始直接輸入[root@()]$tt 沒有反應,查資料,發現原來要這樣(如下),為什么?暫時不知道!
[root@()]$ ./tt ,竟然有錯誤提示,提示內容如下:-sh:./tt:Permission denied
上網查資料說是權限不夠,需要運行如下指令:chmode 777 tt
運行后,竟然告訴我,沒有這個命令,最后發現原來是 chmod(看來指令的名稱都被中間廠商修改了)。
運行chmod 777 tt 后,在去運行 ./tt ^^#$^#$@ OK ---成功了!
后記:linux的使用習慣與windows有很大的區別,linux聯網需要激活網卡才能工作,運行文件需要 ./XXX格式,并且有權限的用戶才能執行,類似的小問題,對一個linux菜鳥來說,真是一個又一個的攔路虎,不過到現在總算接近門檻了,對我來說,后面的路還很長,困難才剛剛開始 … …
-
嵌入式
+關注
關注
5068文章
19016瀏覽量
303239 -
Linux
+關注
關注
87文章
11227瀏覽量
208920
原文標題:嵌入式Linux編程之旅,我的第一次艱難跋涉
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論