64位 Fedora 22環境下搭載 mini2440 開發環境
阿新 • • 發佈:2019-01-09
近來對嵌入式Linux開發很感興趣,於是淘了塊“友善之臂”的mini2440開發板玩兒。首先搭載開發環境,由於光碟中視訊用的Fedora14太老,很多yum源都以失效,難以獲取和更新軟體,索性下了個最新的Fedora22,自己配置開發環境。廢話不多說,言歸正文。
本文目標:
1.在vmware虛擬機器上安裝Fedora22;
2.配置Samba服務,以便Windows訪問虛擬機器資源;
3.安裝arm-linux-gcc交叉編譯環境;
4.使用secureCRT將交叉編譯好的程式傳送到mini2440上執行測試。
1.vmware10上安裝fedora22虛擬機器
開啟vmware,點選“檔案”選單下的 “新建虛擬機器” -> 選擇“典型” ,下一步 -> 選擇“安裝光碟映象檔案(iso)”,點選“瀏覽”,選擇我們的Fedora22安裝光碟映象,下一步 -> 選擇"Linux", 選擇"Fedora 64位",下一步 -> 隨意設定虛擬機器名稱及存放位置,下一步 -> 自己設定磁碟大小,選擇“將虛擬磁碟拆分成多個檔案”,下一步 -> 點選“自定義硬體”,將“網路介面卡”設定為橋接模式(這樣之後才能和mini2440同在一個網段下,使用nfs服務共享資源) -> 點選“完成” -> 點選“開啟此虛擬機器”,開始安裝Fedora22 -> 選擇“Install to hard drive” -> 選擇安裝語言,下一步 -> 點選“安裝目標位置”,點選“完成”,點選“開始安裝”,安裝期間可以設定root密碼和新增使用者 等待安裝完成即可。(隨vmware版本和Fedora版本的不同,安裝步驟可能會有所差異。)
2.配置samba服務
(此部分參考博文: http://blog.csdn.net/joeblackzqq/article/details/39087455) (1)首先關閉防火牆及selinux: 首先root, 輸入 su 命令後會提示輸入密碼 關閉防火牆 //不關的後果是windows看不到本機 systemctl stop firewalld //暫時關閉防火牆 systemctl disable firewalld //開機禁止啟動 關閉selinux //不關的後果是windows沒有許可權訪問本機 編輯 /etc/selinux/config,永久禁用selinux: vi /etc/selinux/config 將其修改如下:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
儲存退出後重啟fedora
(2)安裝samba
fedora22已經棄用yum而改用dnf來線上獲取安裝、升級程式了。
基本上好像用起來沒什麼區別,只是把yum替換成dnf即可。
dnf install samba
(低版本fedora可以用 yum install samba)
(3)配置samba
vi /etc/samba/smb.conf
在檔案最後新增以下內容,其中[hg]是windows上看到的名稱,path是需要共享的目錄
[hg]
comment = directory of user "hg"
path = /home/hg
public = yes
writable = yes
valid users = hg
create mask = 0700
directory mask = 0700
browseable = yes
(4)增加使用者
# smbpasswd -a USER
USER為linux上的使用者名稱
(5)啟動samba服務
service smb start //重啟後samba服務失效
systemctl enable smb //重啟後會自動啟動samba服務
(6)在windows上訪問hg資料夾
首先在fedora下用ifconfig命令查詢ip地址,如192.168.2.102
接著在windows資源管理器位址列輸入: \\192.168.2.102
接著會提示輸入使用者名稱和密碼,按照之前smbpasswd -a新增的使用者輸入登入即可看到hg資料夾。
這樣便可以在windows下用notepad++編輯完程式碼後,再到linux下去編譯,也可以很方便的將一些資源直接複製到linux資料夾中。
需要注意的是,若是在fedora下建立的檔案或資料夾,windows下是沒有許可權修改的,表現為無法在資料夾裡新建檔案,或者修改linux下建立的檔案後無法儲存。
需要將相應的檔案加上“其他使用者(o)”的“寫許可權(w)” chmod o+w /home/hg/test 後,便可正常新建、修改檔案了。
3.安裝交叉編譯工具
安裝arm-linux-gcc前,還是先安裝個gcc,編譯個hello.c吧,總感覺不列印個hello world出來,缺了些什麼一樣。
fedora22沒有預裝gcc,安裝也非常簡單:
dnf install gcc
用vi新建個c檔案:vi hello.c
#include <stdio.h>
int main()
{
printf("Hello world!\n");
}
編譯:gcc hello.c -o hello
執行:./hello
輸出結果:Hello world!
看到了Hello world,志得意滿,我們繼續來安裝arm-linux-gcc
1.將 arm-linux-gcc-4.3.2.tgz 和 install_32lib.sh 拷貝到之前samba共享的目錄中
2.解壓arm-linux-gcc-4.3.2.tgz
tar xzvf arm-linux-gcc-4.3.2.tgz -C /
3.新增環境變數
修改/etc/profile: vi /etc/profile
增加:pathmunge /usr/local/arm/4.3.2/bin
執行: source /etc/profile
鍵入 “arm-linux-” 之後按兩下 Tab 鍵,若出現以下很多指令,說明環境變數配置正確。
但由於我安裝的是64位系統,還需要安裝32位的庫,否則會報錯:
輸入 arm-linux-gcc -v 提示有些庫找不到
有很多庫需要安裝,方便起見,可以直接執行install_32lib.sh:
chmod u+x install_32lib.sh
./install_32lib.sh
安裝完之後再輸入 arm-linux-gcc -v,成功
此時再用arm-linux-gcc編譯一下之前的hello.c:
arm-linux-gcc hello.c -o hello_mini2440
4.使用secureCRT將交叉編譯好的程式傳送到mini2440上執行測試
1)安裝secureCRT,安裝完後,將mini2440通過串列埠連結至電腦,開啟secureCRT,設定並連線:
2)mini2440上開關選擇nand flash啟動,開啟mini2440電源,便可以通過secureCRT連線到mini2440的shell了:
3)將之前在fedora上編譯的hello_mini2440拷貝到windows中,在mini2440的shell上執行 rz 指令,將hello_mini2440下載到目標板中並執行: