0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在嵌入式Linux上運(yùn)行一個(gè)最簡(jiǎn)單的“Hello Liunx”程序

Q4MP_gh_c472c21 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-04-10 10:36 ? 次閱讀

很早之前我(作者)就想深入學(xué)習(xí)Linux,但時(shí)間有限,并且Linux門(mén)檻挺高,不是很容易上手。最近由于隧道項(xiàng)目中用到嵌入式Linux(Arm CPU上的Linux),并且提供硬件的單位針對(duì)Linux的編程收費(fèi)很高,并且時(shí)間很長(zhǎng),所以猶豫再三,決定開(kāi)始深入學(xué)習(xí)Linux,并在學(xué)習(xí)過(guò)程中完成預(yù)定的任務(wù)。

沒(méi)有想到,在嵌入式Linux上運(yùn)行一個(gè)最簡(jiǎn)單的“Hello Liunx”程序就費(fèi)了很大的周折,不過(guò)功夫不負(fù)有心人,經(jīng)過(guò)幾天的艱難跋涉,總算成功了,下面我把我的歷程說(shuō)一下,給后來(lái)人有個(gè)參考。

要想在嵌入式Linux運(yùn)行程序,需要有下面幾個(gè)問(wèn)題解決:

1、 需要一個(gè)基于Arm的gcc交叉編譯器;

2、 需要Windows與VPC上的Linux進(jìn)行交互,以便交換文件;

3、 嵌入式Linux系統(tǒng)需要和VPC上的Linux系統(tǒng)或Windows系統(tǒng)進(jìn)行交互,以便交互文件;

第一個(gè)問(wèn)題,相對(duì)比較容易解決,直接和中間廠商要來(lái)了cross-2.95.3.tar.bz2 安裝包,這是一款基于Arm平臺(tái)上的交叉編輯器。直接解壓到任意目錄即可。

第二個(gè)問(wèn)題,有些棘手,查了若干資料,終于找到可行的辦法。

1、 在Windows XP建一個(gè)共享文件夾,如“share”

2、 虛擬機(jī)運(yùn)行起來(lái)后,在Linux命令行方式輸入:smbmount //ip地址或計(jì)算機(jī)名/共享文件夾名 掛載點(diǎn)

3、 Ok,連接成功。

第三個(gè)問(wèn)題,原想著很容易,卻沒(méi)有想到是最難的,中間廠商的辦法如下:

采用目標(biāo)板掛載NFS目錄的方式進(jìn)行開(kāi)發(fā)

主機(jī):NFS服務(wù)器

1、 修改配置文件etc/exports,如

/nfs/rootfs 192.168.0.X(rw,sync,no_root_squash) //具體含義略

2、 配置其為所有用戶可讀,chmod 644 /etc/exports

3、 讓NFS服務(wù)器重新載入 etc/exports, /etc/init.d/nfs reload

4、 檢查防火墻,不要屏蔽相應(yīng)端口

目標(biāo)板:內(nèi)核需要支持NFS

1、Enable:

File Systems à

Network File Systems à

NFS file system support

Provide NFSv3 client support

配置完后,重新編譯內(nèi)核

2、目標(biāo)板啟動(dòng)后,mount –t nfs 192.168.0.Y:/nfs/rootfs/mnt –o nolock

按上面一步步做了,目標(biāo)板提示RPC什么錯(cuò)誤之類,上網(wǎng)查資料,用Servers指令開(kāi)啟服務(wù),很可惜,目標(biāo)板不支持Servers指令。

最后發(fā)現(xiàn)目標(biāo)板支持FTP服務(wù)器,總數(shù)找到一個(gè)救命稻草,不過(guò)很可惜,用戶密碼未知,問(wèn)了中間廠商,用戶和密碼仍然錯(cuò)誤,最后打了n次電話,告訴可以在目標(biāo)板上添加新用戶,然后再登錄FTP。

很恐怖的是,書(shū)本上教的useradd竟然沒(méi)有,后來(lái)查看目標(biāo)板bin上的文件,原來(lái)是adduser命令,添加上用戶,果然可以登錄了。不過(guò)linux上的FTP客戶端不好使,Windows自帶的也不行,只好下了個(gè)FlashFXP軟件,還可以。

在虛擬機(jī)的Liunx系統(tǒng)編寫(xiě)如下程序:

#include

int main(int argc,char **argv)

{

printf("hello linux/n");

}

編寫(xiě)Makefile文件

all:tt

tt: test.c

/usr/local/arm/2.95.3/bin/arm-linux-gcc -o tt test.c

clean:

-rm -rf tt

在命令行運(yùn)行Make指令,生成tt文件

把tt文件通過(guò)FTP客戶端拷貝到目標(biāo)板上。

開(kāi)始直接輸入[root@()]$tt 沒(méi)有反應(yīng),查資料,發(fā)現(xiàn)原來(lái)要這樣(如下),為什么?暫時(shí)不知道!

[root@()]$ ./tt ,竟然有錯(cuò)誤提示,提示內(nèi)容如下:-sh:./tt:Permission denied

上網(wǎng)查資料說(shuō)是權(quán)限不夠,需要運(yùn)行如下指令:chmode 777 tt

運(yùn)行后,竟然告訴我,沒(méi)有這個(gè)命令,最后發(fā)現(xiàn)原來(lái)是 chmod(看來(lái)指令的名稱都被中間廠商修改了)。

運(yùn)行chmod 777 tt 后,在去運(yùn)行 ./tt ^^#$^#$@&# OK ---成功了!

后記:linux的使用習(xí)慣與windows有很大的區(qū)別,linux聯(lián)網(wǎng)需要激活網(wǎng)卡才能工作,運(yùn)行文件需要 ./XXX格式,并且有權(quán)限的用戶才能執(zhí)行,類似的小問(wèn)題,對(duì)一個(gè)linux菜鳥(niǎo)來(lái)說(shuō),真是一個(gè)又一個(gè)的攔路虎,不過(guò)到現(xiàn)在總算接近門(mén)檻了,對(duì)我來(lái)說(shuō),后面的路還很長(zhǎng),困難才剛剛開(kāi)始 … …

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5052

    文章

    18909

    瀏覽量

    300732
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11161

    瀏覽量

    208462

原文標(biāo)題:嵌入式Linux編程之旅,我的第一次艱難跋涉

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式Linux-Qt環(huán)境搭建 Qt程序運(yùn)行測(cè)試

    本編介紹如何在嵌入式Linux開(kāi)發(fā)板配置Qt運(yùn)行環(huán)境,并進(jìn)行Qt程序運(yùn)行測(cè)試。
    的頭像 發(fā)表于 06-01 09:07 ?7293次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>-Qt環(huán)境搭建 Qt<b class='flag-5'>程序</b><b class='flag-5'>運(yùn)行</b>測(cè)試

    【Rico Board試用體驗(yàn)】個(gè)簡(jiǎn)單嵌入式應(yīng)用程序的編譯與測(cè)試過(guò)程

    本帖最后由 cwfwh 于 2016-12-7 20:06 編輯 前面已經(jīng)介紹過(guò),基于Fedora環(huán)境的嵌入式交叉編譯環(huán)境搭建過(guò)程,有個(gè)這個(gè)基礎(chǔ)后,這里介紹個(gè)
    發(fā)表于 12-07 20:04

    怎樣去做一個(gè)簡(jiǎn)單hello程序編譯及運(yùn)行示例呢

    嵌入式linux個(gè)簡(jiǎn)單hello程序編譯及
    發(fā)表于 11-04 06:12

    個(gè)嵌入式Linux板子運(yùn)行Hello World

    個(gè)嵌入式Linux板子運(yùn)行Hello World
    發(fā)表于 11-19 07:37

    Linux實(shí)現(xiàn)ARM嵌入式開(kāi)發(fā)

    時(shí)間:2019.1.26最近接觸ARM平臺(tái)上的嵌入式開(kāi)發(fā),選擇了Linux作為宿主機(jī),直接裝了Ubuntu16.04的雙系統(tǒng),沒(méi)有windows下裝虛擬機(jī)。
    發(fā)表于 12-14 09:01

    什么是嵌入式?嵌入式Liunx組成

    什么是“嵌入式”?答:除了電腦,其他東西都是“嵌入式、嵌入式Liunx組成拿windows做類比,比如我們的手表
    發(fā)表于 12-17 07:54

    創(chuàng)建個(gè)簡(jiǎn)單Hello World Linux應(yīng)用程序的過(guò)程

    本教程將向您介紹創(chuàng)建個(gè)簡(jiǎn)單Hello World Linux應(yīng)用程序的過(guò)程,然后將該應(yīng)用
    發(fā)表于 08-28 06:32

    什么是嵌入式Linux

    Linux到底是什么呢? 嵌入式linux 是將日益流行的Linux操作系統(tǒng)進(jìn)行裁剪修改,使之能在嵌入式計(jì)算機(jī)系統(tǒng)
    發(fā)表于 10-11 13:47

    嵌入式liunx開(kāi)發(fā)技術(shù)詳解

    嵌入式liunx開(kāi)發(fā)技術(shù)詳解主要內(nèi)容本書(shū)以嵌入式Linux 系統(tǒng)開(kāi)發(fā)流程為主線,剖析了嵌入式Linux
    發(fā)表于 03-04 16:58 ?55次下載

    嵌入式Linux應(yīng)用程序例程

    嵌入式Linux應(yīng)用程序例程(arm嵌入式開(kāi)發(fā)步驟)-嵌入式Linux應(yīng)用
    發(fā)表于 07-30 13:23 ?16次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>應(yīng)用<b class='flag-5'>程序</b>例程

    python程序嵌入式linux系統(tǒng)運(yùn)行。。

    最近在寫(xiě)運(yùn)行嵌入式linux系統(tǒng)下的python程序。中間遇到很多坑,接下來(lái)我就一一說(shuō)下。從windows編寫(xiě)python腳本,然后將文
    發(fā)表于 11-01 16:32 ?12次下載
    python<b class='flag-5'>程序</b><b class='flag-5'>在</b><b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>系統(tǒng)<b class='flag-5'>運(yùn)行</b>。。

    嵌入式linux個(gè)簡(jiǎn)單hello程序編譯及運(yùn)行示例

    嵌入式linux個(gè)簡(jiǎn)單hello程序編譯及
    發(fā)表于 11-01 16:56 ?9次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b><b class='flag-5'>一</b><b class='flag-5'>個(gè)</b><b class='flag-5'>簡(jiǎn)單</b>的<b class='flag-5'>hello</b><b class='flag-5'>程序</b>編譯及<b class='flag-5'>運(yùn)行</b>示例

    嵌入式Linux應(yīng)用程序開(kāi)發(fā)-(1)第一個(gè)嵌入式QT應(yīng)用程序

    一個(gè)嵌入式QT應(yīng)用程序成功安裝 Qt Creator 開(kāi)發(fā)環(huán)境后,我們通過(guò)個(gè)
    發(fā)表于 11-01 17:21 ?16次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>應(yīng)用<b class='flag-5'>程序</b>開(kāi)發(fā)-(1)第<b class='flag-5'>一個(gè)</b><b class='flag-5'>嵌入式</b>QT應(yīng)用<b class='flag-5'>程序</b>

    個(gè)完整的嵌入式程序_從單片機(jī)工程師的角度看嵌入式Linux

    前言這篇文章簡(jiǎn)單我們來(lái)起梳理嵌入式Linux些知識(shí),方便于些想跟我
    發(fā)表于 11-02 12:06 ?13次下載
    <b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>完整的<b class='flag-5'>嵌入式</b><b class='flag-5'>程序</b>_從單片機(jī)工程師的角度看<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>

    【從0開(kāi)始創(chuàng)建AWTK應(yīng)用程序】編譯應(yīng)用到嵌入式Linux平臺(tái)運(yùn)行

    。搭建Linux平臺(tái)交叉編譯環(huán)境在上篇文章我們介紹了使用AWTK開(kāi)發(fā)簡(jiǎn)單的應(yīng)用并在PC模擬運(yùn)行,本篇文章就來(lái)介紹
    的頭像 發(fā)表于 12-07 12:08 ?603次閱讀
    【從0開(kāi)始創(chuàng)建AWTK應(yīng)用<b class='flag-5'>程序</b>】編譯應(yīng)用到<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>平臺(tái)<b class='flag-5'>運(yùn)行</b>