1. 程式人生 > >基於FS4412嵌入式系統移植(1) 基本環境搭建

基於FS4412嵌入式系統移植(1) 基本環境搭建

FS4412開發板是華清遠見培訓機構使用的嵌入式ARM開發板。FS4412採用的處理器使用Samsung最新的ARM Cortex-A9四核CPU的Exynos4412。三星公司的Galaxy S III手機便是搭載的這顆處理器,經過驗證,可以流暢執行android4.3系統。

下面以及以後的除錯都是在虛擬機器環境下,ubuntu 12.10系統下進行操作。

首先在開始正式進行linux作業系統移植之前,需要進行一些準備工作,需要將後面用到的一些工具進行安裝和配置。

這裡主要需要進行安裝的是5個:

1、串列埠工具,PuTTY或secureCRT或者linux下的minicom

2、tftp伺服器,用於uboot和虛擬機器之間進行檔案傳輸

3、nfs伺服器,用於開發板掛載nfs檔案系統

4、交叉編譯工具鏈

5、SD卡u-boot啟動盤製作

1、串列埠工具其實就是winxp下的超級終端,上邊列出的三個工具功能都是一樣的,PuTTY或secureCRT是在windows環境下使用的,具體的下載和配置就去百度吧,windows下的軟體使用方法網上還是很好找到的。至於minicom是在linux下的串列埠除錯工具,對於它的安裝和配置可以參考

http://www.cnblogs.com/pang123hui/archive/2011/05/30/2309887.html

這篇文章,值得一提的是在linux下有些usb轉串列埠的驅動做的不是很好,可能會出現在windows下正常使用在minicom中出現亂碼的現象。

2、tftp伺服器的安裝

安裝tftp伺服器
          sudo apt-get install tftpd-hpa tftp-hpa

檢測tftp伺服器安裝情況
          dpkg -s tftpd-hpa

建立tftp共享資料夾

          在根目錄下建立tftpboot資料夾,並設定為最大許可權

[email protected]:~$ cd /
[email protected]:/$ sudo mkdir tftpboot
[sudo] password for linux: 
[email protected]:/$ ls
bin   cdrom  etc   initrd.img  lost+found  mnt  proc  run   selinux  sys       tmp  var
boot  dev    home  lib         media       opt  root  sbin  srv      tftpboot  usr  vmlinuz
[email protected]
:/$ sudo chmod 777 tftpboot/ [email protected]:/$ ll total 100 drwxr-xr-x 24 root root 4096 May 18 23:03 ./ drwxr-xr-x 24 root root 4096 May 18 23:03 ../ drwxr-xr-x 2 root root 4096 Sep 22 2012 bin/ drwxr-xr-x 3 root root 4096 Feb 21 2013 boot/ drwxr-xr-x 2 root root 4096 Sep 22 2012 cdrom/ drwxr-xr-x 15 root root 4300 May 8 16:11 dev/ drwxr-xr-x 140 root root 12288 May 8 16:13 etc/ drwxr-xr-x 3 root root 4096 Sep 22 2012 home/ lrwxrwxrwx 1 root root 36 Sep 22 2012 initrd.img -> boot/initrd.img-3.2.0-29-generic-pae drwxr-xr-x 22 root root 4096 Feb 21 2013 lib/ drwx------ 2 root root 16384 Sep 22 2012 lost+found/ drwxr-xr-x 3 root root 4096 Feb 21 2013 media/ drwxr-xr-x 3 root root 4096 Feb 21 2013 mnt/ drwxr-xr-x 5 root root 4096 Apr 18 17:12 opt/ dr-xr-xr-x 177 root root 0 May 8 16:11 proc/ drwx------ 7 root root 4096 Apr 18 08:49 root/ drwxr-xr-x 26 root root 960 May 9 22:27 run/ drwxr-xr-x 2 root root 4096 Feb 21 2013 sbin/ drwxr-xr-x 2 root root 4096 Mar 5 2012 selinux/ drwxr-xr-x 3 root root 4096 Apr 14 10:12 srv/ drwxr-xr-x 13 root root 0 May 8 16:11 sys/ drwxrwxrwx 2 root root 4096 May 18 23:03 tftpboot/ drwxrwxrwt 13 root root 4096 May 16 23:44 tmp/ drwxr-xr-x 10 root root 4096 Aug 18 2012 usr/ drwxr-xr-x 13 root root 4096 Apr 18 18:57 var/ lrwxrwxrwx 1 root root 33 Sep 22 2012 vmlinuz -> boot/vmlinuz-3.2.0-2

配置tftp伺服器

[email protected]:/$ sudo vi /etc/default/tftpd-hpa 

將檔案內容修改為下面:

  TFTP_USERNAME="tftp"
  TFTP_DIRECTORY="/tftpboot"
  TFTP_ADDRESS="0.0.0.0:69"
  TFTP_OPTIONS="-c -s -l"  

重啟tftp伺服器
       sudo service tftpd-hpa restart

看到如下返回表示開啟成功

tftpd-hpa stop/waiting
tftpd-hpa start/running, process 5191

3、nfs伺服器

安裝nfs伺服器
         sudo apt-get install nfs-kernel-server

配置nfs伺服器

        修改全域性環境變數

        [email protected]:/$ sudo vi /etc/exports 

在最後一行新增如下語句

        /source/rootfs *(rw,sync,no_subtree_check,no_root_squash)

建立nfs資料夾和檔案系統

在根目錄下建立資料夾source,並賦給最大許可權

[email protected]:/$ sudo mkdir source
[sudo] password for linux: 
[email protected]:/$ sudo chmod 777 source/
[email protected]:/$ 

將rootfs.tar.xz檔案複製到source檔案下,並解壓,檔案下載地址:rootfs.tar.xz

[email protected]:/$ cd source/
[email protected]:/source$ ls
rootfs.tar.xz
[email protected]:/source$ tar vxf rootfs.tar.xz 

重啟nfs伺服器

[email protected]:/$ sudo service nfs-kernel-server restart
 * Stopping NFS kernel daemon                                                       [ OK ] 
 * Unexporting directories for NFS kernel daemon...                                 [ OK ] 
 * Exporting directories for NFS kernel daemon...                                   [ OK ] 
 * Starting NFS kernel daemon                                                       [ OK ] 
[email protected]:/$ 

4、交叉編譯工具鏈的安裝

上面把主要的軟體都安裝完了,下面要進行與硬體相關的一些安裝了,首先是交叉編譯工具鏈的安裝

        把交叉編譯工具鏈下載並在home目錄下新建一個目錄儲存,交叉工具鏈的下載地址:gcc-4.6.4.tar.xz

[email protected]:/$ cd ~
[email protected]:~$ mkdir armtoolchain
[email protected]:~$ ls
16021         Desktop    Downloads         Music     Public     Videos
armtoolchain  Documents  examples.desktop  Pictures  Templates
[email protected]:~$ cd armtoolchain/
[email protected]:~/armtoolchain$ ls
gcc-4.6.4.tar.xz
[email protected]:~/armtoolchain$ tar vxf gcc-4.6.4.tar.xz 

       設定環境變數,這裡建議設定在個人環境變數中,好處就是在同時開發多種arm是,需要使用多種交叉編譯鏈時,可以建立不同使用者來區分交叉編譯工具鏈的使用。

sudo vi /etc/bash.bashrc

在檔案的最後一行新增

export PATH=$PATH:/home/linux/armtoolchain/gcc-4.6.4/bin
重啟配置檔案
source /etc/bash.bashrc

檢視交叉編譯鏈是否安裝成功

arm-none-linux-gnueabi-gcc –v

系統會返回很多資訊,最後是 …… Thread model: posix
gcc version 4.6.4 (crosstool-NG hg+default-2685dfa9de14 - tc0002)
5、SD卡驅動盤的製作 將sdfuse_q.zip解壓並拷貝到linux虛擬機器中,sdfuse_q.zip檔案下載地址:sdfuse_q 將SD卡插入電腦,並在linux系統下被識別 進入sdfuse_q執行如下操作
sudo ./mkuboot.sh /dev/sdb
在 SD 卡中建立目錄 sdupdate 並把u-boot-fs4412.bin 拷貝到這個目錄下u-boot-fs4412.bin檔案下載地址:u-boot-fs4412.bin

這裡需要注意的是在sdfuse_q資料夾下也有一個u-boot-fs4412.bin檔案,但是這個檔案和需要放在sdupdate目錄下的u-boot-fs4412.bin並不是一個檔案,在sdfuse_q資料夾下的bin檔案是在SD卡啟動時使用的,在sdupdate下的bin檔案是需在emmc下啟動的,如果使用檔案對比軟體對比就會發現這兩個檔案是不同的,這裡需要特別注意。在使用時如何區別這兩個檔案是不是被弄錯了呢?有一個方法就是通過執行時的uboot支援的指令多少來區別,sd卡啟動時使用的uboot支援的指令比較少,在boot下使用“?”命令來檢視uboot支援的命令。

這裡做的都是一些準備工作,並沒有操作開發板,這裡還都是在pc機上的操作,所以拿到第一節中講解,接下來的兩節開始要接觸硬體開發板,最後的目的是在開發板上執行起來linux系統。

相關推薦

基於FS4412嵌入式系統移植1 基本環境搭建

FS4412開發板是華清遠見培訓機構使用的嵌入式ARM開發板。FS4412採用的處理器使用Samsung最新的ARM Cortex-A9四核CPU的Exynos4412。三星公司的Galaxy S III手機便是搭載的這顆處理器,經過驗證,可以流暢執行android4.3系

基於FS4412嵌入式系統移植3 eMMC載入系統啟動linux體驗

上一節中體驗了一下如何通過tftp載入核心和裝置樹,並掛載nfs檔案系統啟動linux,這樣的方法很時候除錯階段,可以把需要的執行的程式碼或者映象檔案放在虛擬機器上就可以了,不需要每次都燒寫到開發板中。但是在開發完成後不可能一直在使用一臺電腦來給開發板載入系統使用,所以今天

基於FS4412嵌入式系統移植2 NFS檔案系統啟動linux體驗

這一節目標有3個: 1、將uboot拷貝到emmc中,並在emmc中啟動uboot 2、除錯tftp,能夠通過uboot使用tftp從linux的tftp共享資料夾中拷貝資料到開發板記憶體中。 3、設定uboot啟動配置,達到能夠從伺服器中載入核心和裝置樹,並掛載nfs檔案

基於FS4412嵌入式系統移植5 核心移植

這一節中我們進行核心的移植,在課上同樣是按照實驗手冊進行試驗,同樣不知道是為什麼要那麼做,所以這裡就不細講了。實驗手冊中有一些錯誤,我自己改過來上傳共同學們參考。實驗手冊修正版下載地址:FS4412系統移植實驗手冊-核心移植 實驗中使用的核心版本是3.14.0,因為我的上傳

根文件系統移植1——根文件系統介紹

根文件系統介紹一:什麽是根文件系統 (1)首先明白一點,我們的文件在硬盤上的存儲並非是連續存放的,而是零散的存放在硬盤中的某些空余扇區中的,這就導致了我們很難去查看我們存放的文件(因為人無法記住所有文件存放在哪些扇區,已經扇區的順序),這時就有了我們的文件系統,所以簡單來講,文件系統就是對一個存儲設備上

基於MT7688的OpenWrt學習筆記1——開發環境搭建

                                          &

【Selenium2+Java自動化1】-環境搭建

build 方案 gecko launcher bfd javascrip 嵌入 eclipse 明顯 前言 目前selenium版本已經升級到3.0了,網上的大部分教程是基於2.0寫的,所以在學習前先要弄清楚版本號,這點非常重要。本系列依然以selenium2為基礎,目前

[Python接口自動化]從零開始學習python自動化1環境搭建

help ins cnblogs 文件中 ssi 空格 plugins 變量 mod 第一步:安裝python編譯環境 安裝python編譯環境之前,必須保證已安裝jdk哈,如果為安裝,請參考https://jingyan.baidu.com/article/6dad507

ECMAScript 6 學習筆記1--編譯環境搭建

nodejs babel轉碼 es6環境安裝 參考文檔:http://es6.ruanyifeng.com/#docs/intro https://www.w3cschool.cn/ecmascript/ ECMAScript是一種定義腳本語言的規範,Javascript正是基於這種規範的一種實現

Stuts2學習筆記1環境搭建及Demo

原始碼: github: https://github.com/liaotuo/Struts2-Demo/tree/master/struts2-demo 環境搭建 下載struts2 官網下載:http://mirror.bit.edu.cn/apache/struts

【一步一個腳印】Tomcat+MySQL為自己的APP打造伺服器1伺服器環境搭建

做 Android 開發一年多了,雖然不敢說有多精通,但也相對熟悉。做久了就會發現 Android 在行外人眼中是多麼高深(包括 IOS 也一樣),但是我們自己知道其實 Android 和 Web 前

快速入門Openstack,無腦多節點部署Mitaka1--前期環境搭建準備

序言 openstack是什麼?官方的解釋:OpenStack is a cloud operating system that controls large pools of compute, storage, and networking reso

python從零開始寫爬蟲1-- 開發環境搭建

我是一點都不會python,但為了寫爬蟲,所以就硬幹了。。。 1.windows下搭建python環境直接參考這個就行了安裝指南 2.透過pip安裝套件:1)pip install requests;2)pip install BeautifulSoup4      具體操

區塊鏈1開發環境搭建及Hello World合約展示

開發環境搭建 如果你對於以太坊智慧合約開發還沒有概念,請先閱讀以太坊智慧合約入門,本文基於windows平臺開發。 Geth 安裝 以太坊的客戶端有很多,我們選擇開發過程中最為流行的Geth,其基於Go語言開發。 到官方地址下載相應的安

android學習之1----開發環境搭建

1.安裝JDK    JDK(Java Development Kit) 是 Java 語言的軟體開發工具包(SDK),通常安裝SE(Standerd Edition)版本。     安裝之後需設定系統環境變數:計算機---->右鍵---->屬性----&g

Ok6410裸板程式開發1-開發環境搭建

廢話不都說,直接進去正題。本人的開發環境如下: @system:Ubuntu12.04 @串列埠工具:minicom @交叉工具鏈:arm-linux-gcc4.3.2 @開發板:Forlinx OK6410 開發裸板程式時,沒有選擇Jlink,主要原因就是它不好用,而且

基於IMX6Q的u-boot-2017.11的移植1->初步移植

1.下載u-boot 2.tar -xjvf u-boot-2017.11.tar.bz2 3.cd cd u-boot-2017.11/ 4.進入到配置資料夾cd configs/ 5.ls mx6q* mx6qarm2_defconfig mx6qarm2_l

推薦系統實踐 0x06 基於鄰域的演算法1

# 基於鄰域的演算法(1) 基於鄰域的演算法主要分為兩類,一類是基於使用者的協同過濾演算法,另一類是基於物品的協同過濾演算法。我們首先介紹基於使用者的協同過濾演算法。 ## 基於使用者的協同過濾演算法(UserCF) 基於使用者的協同過濾演算法是最古老的演算法了,它標誌著推薦系統的誕生。當一個使用者甲需要個

根文件系統移植2——根文件系統的兩種格式

根文件系統 鏡像 文件夾一:鏡像格式的根文件系統 (1)鏡像文件的根文件系統的主要作用是用來以後燒錄到塊設備上面的,塊設備上的內核啟動後去掛載它。 (2)鏡像形式的根文件系統是由文件夾格式的根文件系統通過特定的工具(mke2fs)制作得到的 (3)鏡像文件系統具有一定的格式,格式是內化的

嵌入式開發學習1<ARM體系結構>

特點 如何 現在 訪問 任務 物聯網 嵌入 專用 arm1 SoC : 在cpu 裏內嵌了很多外設,現在所說的cpu 實際上都是SoC。 32位cpu指的是數據總線是32位的。 32位的地址總線尋址範圍是4G。2的32次方。 CISC complex instruction