AM3517板整個開發過程記錄

AM3517板整個開發過程記錄 linux

簡單介紹一下整個開發過程的創建以及在中間遇到的一些問題及其解決方法。 數據庫

1、平臺硬件資源簡介 ubuntu

CPU:TI Sitara AM3517+ vim

DDR2:SAMSUNG K4T1G164QE-HCE7 框架

Nand:SAMSUNG K9F1g08UOD socket

PHY:NS DP83848C 測試

創建TFTP Server ui

1、安裝相關軟件包:Ubuntu tftp(服務端),tftp(客戶端),xinetd spa

root@xf :/# apt-get install tftpd tftp xinetd rest

正在讀取軟件包列表... 完成

正在分析軟件包的依賴關係樹      

正在讀取狀態信息... 完成      

下列【新】軟件包將被安裝:

 tftp tftpd xinetd

升級了 0 個軟件包,新安裝了 3 個軟件包,要卸載 0 個軟件包,有 0 個軟件包未被升級。

須要下載 185kB 的軟件包。

解壓縮後會消耗掉 578kB 的額外空間。

獲取:mirrors.sohu.com/ubuntu karmic/universe tftp i386 0.17-17ubuntu1 [17.6kB]

獲取:mirrors.sohu.com/ubuntu karmic/main xinetd i386 1:2.3.14-7ubuntu2 [151kB]

獲取:mirrors.sohu.com/ubuntu karmic/universe tftpd i386 0.17-17ubuntu1 [16.5kB]

下載 185kB,耗時 2 (79.6kB/s)

選中了曾被取消選擇的軟件包 tftp

(正在讀取數據庫 ... 系統當前共安裝有 173693 個文件和目錄。)

正在解壓縮 tftp ( .../tftp_0.17-17ubuntu1_i386.deb) ...

選中了曾被取消選擇的軟件包 xinetd

正在解壓縮 xinetd ( .../xinetd_1%3a2.3.14-7ubuntu2_i386.deb) ...

選中了曾被取消選擇的軟件包 tftpd

正在解壓縮 tftpd ( .../tftpd_0.17-17ubuntu1_i386.deb) ...

正在處理用於 man-db 的觸發器...

正在處理用於 ureadahead 的觸發器...

正在設置 tftp (0.17-17ubuntu1) ...

正在設置 xinetd (1:2.3.14-7ubuntu2) ...

* Stopping internet superserver xinetd                                                                              

[ OK ]

* Starting internet superserver xinetd                                                                              

[ OK ]

正在設置 tftpd (0.17-17ubuntu1) ...

Note: xinetd currently is not fully supported by update-inetd.

     Please consult /usr/share/doc/xinetd/README.Debian and itox(8).

2、創建配置文件

/etc/xinetd.d/下創建一個配置文件tftp

sudo vim tftp

在文件中輸入如下內容:

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /tftpboot

disable = no

per_source = 11

cps = 100 2

flags = IPv4

}

保存退出。

3、創建Ubuntu tftp服務文件目錄(上傳文件與下載文件的位置),而且更改其權限

sudo mkdir /tftpboot

sudo chmod 777 /tftpboot -R

4、從新啓動服務

sudo /etc/init.d/xinetd restart

至此Ubuntu tftp服務已經安裝完成了,下面能夠對其進行一下測試。(在當前目建立2.c,在tftpboot目錄下建立1.c2.c,且

tftpboot目錄下2.c權限爲777

執行get命令時,保證tftpboot目錄下的文件權限爲777

執行put命令時,必須先在tftpboot目錄下新建一個和上傳文件同名的文件且權限爲777.

root@xf :/home# tftp 127.0.0.1

tftp> get 1.c

Received 7 bytes in 0.1 seconds

tftp> put 2.c

Sent 10 bytes in 0.0 seconds

tftp> quit

qt4編譯

make confclean

./configure -xplatform /qws/xxxx  -embedded arm -static -little-endian/-big-endian

2、編譯

安裝ubuntu10.04toolchain等相應環境。

export PATH=$PATH:/opt/4.4.3/bin/

編譯x-loader

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- am3517evm_config

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

./signGP x-load.bin

cp x-load.bin.ift MLO

編譯u-boot

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- am3517_evm_config

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

編譯kernel

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- am3517_evm_defconfig

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

setenv bootargs 'mem=256M console=ttyS2,115200n8 noinitrd root=/dev/mtdblock4 rw rootfstype=jffs2 omapfb.rotate=1 omapfb.rotate_type=1 omap_vout.vid1_static_vrfb_alloc=y;'

3、利用busybox製做root file system

編譯busybox

make menuconfig

(1)

(2)

(3)

make

make install

構建框架

cd /home/user/

mkdir rootfs

cd rootfs

mkdir –p dev lib etc sys proc mnt var tmp data

chmod 777 *

添加內容

/bin/sbin目錄

cp –rf busybox-1.17.2/_install/bin ./

cp –rf busybox-1.17.2/_install/sbin ./

/dev目錄

mknod dev/console c 5 1

mknod dev/null c 1 3

chmod 777 dev/*

/lib目錄

cp /opt/4.4.3/arm-none-linux-gnueabi/lib/* ./lib/

/etc目錄

fstab:指明須要掛載的文件系統

inittab:init進程的配置文件

profile:用戶環境配置文件

init.d目錄:啓動文件目錄,該目錄中有個名爲rcS的文件,裏面存放了系統啓動時配置以及自啓動加載的進程等。

/proc/mnt/var/tmp目錄

基本都是空目錄。

/mnt通常用作臨時掛載某個文件系統,好比說u盤。

/tmp用於存放臨時文件,我掛載爲了ramfs,用於下載文件,應用程序放置,內存文件系統訪問速度至關快,不比nand,加快了訪問速度,並且加強了nand壽命。

/data目錄

掛載爲了yaffs2文件系統,能夠用於讀寫,用於存儲一些須要保存的數據。

4、製做jffs2

mkfs.jffs2 -r ./rootfs -o rootfs.jffs2 -e 0x20000 -p=0x1000000 -n

5、燒寫程序

uboot下燒寫x-loader

mw.b 0x80000000 0xff 0x100000

tftp 0x80000000 192.168.0.100:x-load.bin.ift

nand erase 0 40000

nandecc hw

nand write.i 0x80000000 0 40000

燒寫u-boot

mw.b 0x80000000 0xff 0x100000

tftp 0x80000000 192.168.0.100:u-boot.bin

nand erase 80000 1c0000

nandecc sw

nand write.i 0x80000000 80000 1c0000

燒寫kernel

mw.b 0x80000000 0xff 0x500000

tftp 0x80000000 192.168.0.100:uImage

nand erase 280000 500000

nandecc sw

nand write.i 0x80000000 280000 300000

6、測試ramdisk

nfs

setenv bootargs 'console-ttyS2,115200n8 noinitrd rw ip=192.168.0.250:192.168.0.103:192.168.0.1:255.255.255.0::eth0:off eth=00:40:01:2B:64:60 root=/dev/nfs  nfsroot=192.168.0.103:/home/realtimedsp/workdir/am3517/filesys,nolock,mem=256M'

tftp

tftp 0x81000000 ramdisk.gz

setenv bootargs mem=256M console=ttyS2,115200n8 root=/dev/ram0 initrd=0x81000000,40M ramdisk_size=40960;

setenv bootcmd 'nand read.i 0x80000000 280000 500000;bootm 0x80000000'

boot

更新root

flash_eraseall -j /dev/mtd4

mkdir -p /mnt/nand

mount -t jffs2 /dev/mtdblock4 /mnt/nand

cd /mnt/nand

mkdir -p /mnt/data

mount -t jffs2 /dev/mtdblock5 /mnt/data

cd /mnt/data

tftp -r flashImage.tar -g 192.168.0.103

tar zxvf flashImage.tar

分區表

x-loader 0-0x80000

uboot    0x80000-0x240000

param    0x240000-0x280000

kernel   0x280000-0x780000

root      0x780000-0x1b80000

相關文章
相關標籤/搜索