您的位置:首页 > 运维架构 > Linux

LINUX_BSP_0_3_8在i.MX1上的使用与问题解决

2009-05-12 08:24 323 查看
下面是自己在motorola M9328MX1ADS/MX9328MXLADS 开发板上使用LINUX_BSP_0_3_8的步骤以及所遇到问题的解决.

0.说明
开发板是M9328MX1ADS/M9328MXLADS. 下面的i.MX1,mx1,ADS均为这块板的简称.
linux内核版本为2.4.18.
BSP版本为0.3.8
主机ubuntu 8.04

文档编辑日期:2009-05-09
作者: ochapman@qq.com

1.准备
(1).下载i.Mx1最新板BSP,LINUX_BSP_0_3_8.gz. 12/18/2008
在www.freescale上, http://www.freescale.com/webapp/search/Serp.jsp?&QueryText=M9328&SelectedAsset=Downloads&&fsrch=1&QueryText=M9328&SelectedAsset=Downloads&&fsrch=1&QueryText=M9328&SelectedAsset=Downloads&&fsrch=1

(2).解压LINUX_BSP_0_3_8.gz
tar xzvf LINUX_BSP_0_3_8.gz
解压后在当前目录下的mx1_rel_0.3.8

2.mx1_rel_0.3.8内容简单说明.
(1)Bootloader: 引导加载器. 相对于0.3.6版本, 0.3.8增加了bootloader的源码.
(2)Documents, 文档说明, 有关安装文件, 介绍制作内核映像, 根文件系统等. 相对与0.3.6版本, 只有txt格式的文档.
(3)Driver, 针对MX1ADS的驱动.
(4)Rootdisk, 根文件系统
(5)Tools, 开发平台工具, 包括针对于mx1的内核调试工具, gcc, qtopia, 以及对应的源码.
(6)Utilities. 各种小工具集合.

3.开发环境的构建
3.1说明
(a)更多详细内容参见Tools目录下的ToolChainSetup-HowTo_v02.txt
(b)因为ubuntu平台下已经安装了本地gcc, 所以不采取ToolChainSetup-HowTo_v02.txt下安装BSP所带的本地gcc.
(c)不同linux发行版本下, 有所差异, 文档要求的是Red Hat Linux 7.3. 但本文采用ubuntu 8.04.
3.2步骤
(1)切换到root用户, 因为解压的文件是直接放到/usr/local下的.
(2)备份/usr/local.
(3)安装arm文件头, tar zxvf usr-local-arm-kernel-headers-030528.tar.gz
(4)安装本地qtopia, tar zxvf usr-local-qtopia-030528.tar.gz
(5)安装针对于arm的gcc(目标平台), tar zxvf usr-local-arm-gcc-030528.tar.gz
(6)安装针对于arm的qtopia, tar zxvf usr-local-arm-qtopia-030528.tar.gz
(7)编辑库的搜索路径.在ubuntu平台下, 为/etc/ld.so.conf.d/libc.conf, 将"/usr/local/lib"加至该文件的开始处.
(8)运行 ldconfig -v.
(9)切换到普通用户
(10)
修改环境变量PATH, 将/usr/local/bin, /usr/local/arm/bin, /usr/local/qtopia/bin,
/usr/local/arm/qtopia/bin 添至PATH变量中. 在ubuntu平台下, 修改/etc/.profile.

4.制作内核映像.
4.1说明
(a)内核映像为"arch/arm/boot/Image"
(b)在mx1_rel_0.3.8下, Kernel已经是打过针对于mx1的补丁,所以无需打补丁.
(c)更多详细内容参见Documents下的Building_the_Kerne.txt
4.2步骤
(1)解压Kernel.tgz, tar xzvf Kernel.tgz. 生成Source目录.
(2)清除,make clean.
(3)配置,make config. 如无需更改, 只需默认.
(4)生成image,make boot.
注意!!!
0.3.8版本考虑了新型的LCD的, 但此项目仍是旧LCD, 未经修改0.3.8的内核下载到MX1上, LCD将无法显示彩色内容(呈灰黑状). 通过多次实验. 确定了问题所在.
解决方法:
将"/drivers/video/dbmx1fb.c" 函数void _enable_lcd_controller(void)(在1348行)里的
WRITEREG( DBMX1_LCD_PANELCFG, READREG(DBMX1_LCD_PANELCFG) | LCD_REVERSED_MASK );
WRITEREG( DBMX1_LCD_PWMR, READREG(DBMX1_LCD_PWMR) | LCD_CONTRAST_MASK );
注释掉上面两行, 重新编译, 即可解决问题.

5.修改与制作根文件系统
5.1步骤
(1)解压"/Rootdisk/rt.cramfs". cramfsck -x dir rt.cramfs. 其中dir为解压后的目录.
(2)修改dir里内容.
(3)制作cramfs. mkcrmfs dir rt_new.cramfs. 其中rt_new.cramfs为新制作的根文件系统.
5.2说明
(a)这里的制作方法与Documents里的Generating_the_Root_File_System.txt不一样. Gene~采用的是挂载到一个目录再复制到另一个目录. 但是在复制过程中, 出现下面问题:
cp: will not create hard link `bspn/bsp/mnt/docbp/dev' to directory `bspn/bsp/home/guest'
cp: will not create hard link `bspn/bsp/mnt/fdisk' to directory `bspn/bsp/home/guest'
cp: will not create hard link `bspn/bsp/mnt/ide' to directory `bspn/bsp/home/guest'
cp: will not create hard link `bspn/bsp/mnt/mmcsd' to directory `bspn/bsp/home/guest'
cp: will not create hard link `bspn/bsp/mnt/ms' to directory `bspn/bsp/home/guest'
cp: will not create hard link `bspn/bsp/mnt/sdisk14m' to directory `bspn/bsp/home/guest'
cp: will not create hard link `bspn/bsp/mnt/sdisk2m' to directory `bspn/bsp/home/guest'
cp: will not create hard link `bspn/bsp/proc' to directory `bspn/bsp/home/guest'
cp: will not create hard link `bspn/bsp/root' to directory `bspn/bsp/home/guest'
cp: will not create hard link `bspn/bsp/var' to directory `bspn/bsp/home/guest'
(其中bspn/bsp是实验过程采用的目录.)
通过实验摸索, 采用不同于文档说明的cramfsck解压方式, 这种方法更加简单, 而且不出现上面问题.
(b)更加详细的说明, 请见Gene~的说明

6.下载映像
6.1说明
(a)分为SyncFlash与Doc两种方式, 但只采用SyncFlash.
(b)在Windows XP下进行操作, 虽然文档说明是Windows 2000, 以下步骤在Windows XP下进行.
(c)通过测试, Ubuntu在虽可下载, 但映像运行不正常. 需进一步研究.

6.2无bootloader模式下载bootloader.
(1)配置超级终端.波特率9600(经测试得出, 与文档不同), 8bit, 无奇偶校验位, 1个停止位, 无流控制.
(2)
(3)在ADS上, 将模式开关(boot)全部设为开(on)
(4)连接ADS到PC, 让超级终端监听.
(5)打开ADS电源.
(6)在超级终端敲入'a'. 响应':'
(7)按<Enter>键.
(8)选择"发送/发送文本文件", 发送在Bootloader/bin/programBoot_b.txt. 注意!!!是"发送文本文件"不是"发送文件"!
(9)下载将自动进行. 超级终端将显示"Erasing flash..."等信息.

6.3在bootloader模式下
(1)将模式开关设为"ON-OFF-ON-ON-ON-ON"
(2)打开ADS电源
(3)当bootloader引导信息出现时, 按任意键进入选择菜单.
(4)选择响应的选项.例如, 下载内核映像, 选1.
(5)当显示"USB drive ready for transfer"时. 将USB连接到PC.
(6)在windows的资源管理器将会出现U盘. 复制(4)所选择的相应映像到U盘.
(7)右击U盘, 选择"弹出"
(8)在超级终端里, 将显示"Press any key to start program...", 按任意键开始下载.

7.应用程序调试下载
7.1说明
(a)由于学校网络IP与网卡物理地址的绑定, 无法使用NFS方式.
(b)采用Flash盘挂载的方式, 开发完成后再做成根文件系统.
7.2Flash盘挂载方式
(1)运行"disktools". 选择选项1挂载/mnt/sdisk2m, 复制flash盘的内容到/mnt/sdisk2m.
(2)退出"disktools"
(3)在/mnt/sdisk2m里添加或者删除文件
(4)再次运行disktools, 选择选项1将/mnt/sdisk2m的内容写到flash盘, 卸载/mnt/sdisk2m.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐