TI-AM1808_LINUX開發筆記

一.  開發環境

1..windows7 + VMware+Ubuntu14.04.1 LTS

2. ubuntu開發目錄:/home/lct

3. 編譯工具:arm-linux-gcc4.4.3,所在目錄:/usr/local/arm/4.4.3/bin

4. 虛擬機網絡設置

本機PC:       ip:192.168.2.104  掩碼:255.255.0 網關:192.168.2.1

Linux網絡設置:  ip:192.168.2.105 掩碼:255.255.0 網關:192.168.2.255

虛擬機連接方式:bridged

 

 

二.  編譯U-BOOT

 

1.解壓: tar -zvxfu-boot-2010.12-psp03.21.00.04.mcuzone20111109.tar.gz

2. 清除之前配置:

make distcleanCROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-

3. 生成配置文件.config:

makeda850evm_configCROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-

4. 編譯:make allCROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-

 

三.編譯內核

 

1. u-boot編譯後生成的mkimage拷貝到/bin下

2. 清除之前配置:

make distcleanARCH=arm CROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-

3. 生成配置文件.config:

makeda850_omapl138_deconfig ARCH=arm CROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-

4.配置:make ARCH=arm CROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-menuconfig-

5. 編譯生成uImage:

make uImageARCH=arm CROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-lin ux-

 

四.製作文件系統

交叉編譯busybox:

1.解壓: tar –xvf busybox-1.19.4.tar.bz2

2.配置(動態編譯):make menuconfig

3.編譯:make ARCH=arm CROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-

編譯時錯誤:

錯誤一: loginutils/passwd.c:In function ‘passwd_main’:

loginutils/passwd.c:104:16: error: storage size of ‘rlimit_fsize’isn’t known

loginutils/passwd.c:188:2: warning: implicit declaration offunction ‘setrlimit’ [-Wimplicit-function-declaration]

loginutils/passwd.c:188:12: error: ‘RLIMIT_FSIZE’ undeclared(first use in this function)

loginutils/passwd.c:188:12: note: each undeclared identifier isreported>for each function it appears in

loginutils/passwd.c:104:16: warning: unused variable‘rlimit_fsize’ [-Wunused-variable]

改正:sudo gedit busybox-1.19.4/include/libbb.h添加頭文件:#include  <sys/resource.h>

錯誤二:util-linux/mkfs_ext2.c:51:27: fatal error: linux/ext2_fs.h:No such file or directory

 

改正:出現這個錯誤是busybox版本導致的,只有busybox-1.19.4會出現這個問題,換成busybox-1.21.1,問題消失。

4.安裝:make install

5.創建系統其他文件:



6. 拷貝編譯工具鏈的庫文件





7. 添加啓動文件:etc/inittab是系統進程init的啓動腳本



etc/inittab內容:

::sysinit:/etc/init.d/rcS

::askfirst:-/bin/sh

::restart:/sbin/init

::ctrlaltdel:/sbin/reboot

8. 創建fstab文件,並添加內容:這個文件是在kernel啓動末尾使用的,有的自定義kernel可能直接把該mount的節點都掛載上了



etc/fstab內容:

#device       mount-point    type     options      dump   fsckorder

proc           /proc         proc     defaults      0    0

tmpfs         /tmp          tmpfs   defaults      0    0

sysfs           /sys           sysfs    defaults      0    0

tmpfs         /dev           tmpfs   defaults      0    0



9. 建立文件init.d目錄,並新建rcS文件,如下

 

inittab中指定,一般在嵌入式系統中inittab很簡單,就是指定rcS腳本,然後打開一個登錄
終端(甚至不開終端)。所以rcS腳本里應該加上你想在系統啓動之初想幹的事情。

etc/rcS內容:

/bin/mount –a

改變rcS權限:sudo chmod +x rcS

10. 創建profile文件:/etc/profile用戶從終端登錄後,運行的腳本。如果系統不加用戶登錄機制,這個腳本就不會被運行了。


etc/profile內容:

export HOSTNAME=HZDL

export USER=root

export HOME=root

export PSI="[$USER@$HOSTNAME \W]\#"

PATH=/bin:/sbin:/usr/bin:/usr/sbin

LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH

export PATH LD_LIBRARY_PATH

11.創建設備文件。因爲根文件系統中必須有一個設備節點


mknod console c 5 1     mknod null c 1 3


發佈了32 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章