文档库 最新最全的文档下载
当前位置:文档库 › 开发板烧写

开发板烧写

1、你选择使用三星的arm芯片:s3c2440,你就可以选择linux-2.6.26/arch/arm/configs中的s3c2410_defconfig文件,因为对它的配置和对s3c2440的
最为接近,你完全可以在它的基础上修改,如果你想找s3c2440_defconfig,对不起,没有---这个真没有!你总不能啥也不干吧。

2、修改PATH:vim /root/.bashrc

3、能启动,但报了一堆:yaffs tragedy: attempting to use non-directory as a directory in scan. Put in lost+found.
网上分析:
" 物理上没有存储superblock 块,所以NAND Flash 上的yaffs 文件系统本身没有存储filesystem 的魔数(MagicNum),在内存中superblock 里的s_magic 参数也是直接赋值的
,所以存储在NAND FLASH上的任何文件系统都能被当作yaffs 文件系统mount 上来,只是数据都会被当作错误数据放在lost+found 目录中,不知道这算不算yaffs文件系统的一个
bug。"
但是,还是没有解决办法。最后找到个pdf,里面的说明很清楚:
“问题6:烧录yaffs2文件系统成功,文件系统成功启动,但是启动过程报告错误
烧录yaffs2文件系统成功,并且启动也成功,但是启动过程频繁报告yaffs tragedy: attempting to use non-directory as a directory in scan. Put in lost+found这样的
错误。解决方法是将整个yaffs2分区完整地擦除。”
【原因及解决办法】
,保证没有多余的数据,否则,yaffs2挂载之后,就会发现这些数据,试图去按照yaffs2文件系统格式解析文件,当然无法正常解析,就只能当做垃圾放到lost+found文件夹了。
我这里出现问题就是,mtdblock2挂载yaffs2根文件系统,但是在其后面某处,有一些之前通过PC的USB拷贝的过来的一些数据,没有完全擦除,所以,会被yaffs2去读取到,会
去以为也是文件系统的数据,但是又不能正常解析出来,只能Put in lost+found了。
简单说就是,你nand flash上有数据,但是不是yaffs2格式的,却被yaffs2去读取,结果不认识,就强制把他当垃圾,放到垃圾桶:lost+found 里面去了。这只不过是警告,
对系统本身没啥影响,但是如果不解决,看着也还是很不爽,而且根文件系统挂载时间也长很多,呵呵。

擦除方式:A、输入6,再输入5,输入y
+------------------------------------------------------------+
| Select Menu |
+------------------------------------------------------------+
| [1] Download to flash |
......
NAND ID is 0xecda

Please select which region to erase : Esc to abort
......
5 : offset 0x00800000, size 0x03c00000 [fs_yaffs]
Are you sure to erase nand flash from page 0x1000, block count 0x1e0 ? [y/n]

B、nand erase 900000 300000;nand write 20008000 900000 300000
4、系统启动后,屏幕界面停

留在Qtoopia上不动了

5、自己编译--支持yaffs2的内核,
下载yaffs2:git clone git://https://www.wendangku.net/doc/7a7284926.html,/yaffs2
cd yaffs2/
加入到内核支持中(他会自动把fs/Kconfig修改了,并拷贝到内核的fs/yaffs2/下):./patch-ker.sh c m ../linux-2.6.30.1

6、交叉编译:Makefile设置
ARCH ?= arm
CROSS_COMPILE ?= arm-none-linux-gnueabi-

7、文件系统过大?烧不进去了:
Now, Downloading [ADDRESS:30800000h,TOTAL:87525514]
RECEIVED FILE SIZE:8650752
未解决

8、需要稍微做些修改(待验证!!!):/drivers/input/touchscreen/s3c2410ts.c中将static inline void s3c2410_get_XY(void)函数中的x,y值调换顺序。
此问题和2.6.12一样,x、y坐标对调,可以解决飞凌linux下不能校准的问题。
修改方法:
修改llinux-2.6.28.7/drivers/input/touchscreen/s3c2410_ts.c
static irqreturn_t stylus_action(int irq, void *dev_id)函数中
ts.xp += data0 & S3C2410_ADCDAT0_XPDATA_MASK;
ts.yp += data1 & S3C2410_ADCDAT1_YPDATA_MASK;
修改为
ts.yp += data0 & S3C2410_ADCDAT0_XPDATA_MASK;
ts.xp += data1 & S3C2410_ADCDAT1_YPDATA_MASK;

9、Makefile:1607: *** 混和的隐含和普通规则。 停止。
这是由于fedora14的Make工具对低版本内核Makefile一些旧的规则兼容不是很好
把:
/ %/: prepare scripts FORCE
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) /
$(build)=$(build-dir)

改成:
/: prepare scripts FORCE
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) /
$(build)=$(build-dir)
%/: prepare scripts FORCE
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) /
$(build)=$(build-dir)

把:
config %config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include/linux include/config
$(Q)$(MAKE) $(build)=scripts/kconfig $@

改成:
config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include/linux include/config
$(Q)$(MAKE) $(build)=scripts/kconfig $@
%config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include/linux include/config
$(Q)$(MAKE) $(build)=scripts/kconfig $@

10、Makefile:1621: *** 遗漏分隔符 。 停止。
config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include/linux include/config
改正:把“$(Q)mkdir -p include/linux include/config”的前面四个空格改成一个tab即可

11、启动文件内容:
#!/bin/sh
/bin/mount -a
/sbin/ifconfig eth0 192.168.1.15 up
/sbin/ifconfig eth1 192.168.1.16 up

exec /usr/etc/rc.touch

12、/usr/etc/rc.touch内容:
#!/bin/sh

export QTDIR=/usr
export QPEDIR=/usr
export LD_LIBRARY_PATH=/usr/lib
export HOME=/usr/Settings
export TSLIB_TSDEVICE=/dev/ts0
export TSLIB_TSEVENTTYPE=H3600

export QWS_MOUSE_PROTO="TPanel:/dev/ts0"

cd /usr/bin
./qpe &
#exec /usr/bin/qpe
~
12、卸载交叉编译工具(重装交叉编译工具):
我的原来的交叉编

译工具版本4.4.1,目录/opt/arm-2010q1/bin,目标编译工具位3.4.1,目录/usr/local/arm/3.4.1/bin
$ vim ~/.bashrc
把:export PATH=$PATH:/opt/arm-2010q1/bin
改成:#export PATH=$PATH:/opt/arm-2010q1/bin
export PATH=$PATH:/usr/local/arm/3.4.1/bin
$ source ~/.bashrc
以上只能修改对应用户的交叉编译工具,如果想全部修改,用root权限,修改后注销一下即可

13、修改.bashrc过程中,我把root下面export PATH=$PATH:/opt/arm-2010q1/bin错写成export PATH=/opt/arm-2010q1/bin,以至于vi等命令使用不了,当然.bashrc文件用命令
自然也就打不开,最后想到用which vi找到/bin/vi,进入了后执行./vi ~/.bashrc,修改回来就行了

14、编译boa报错:
arm-linux-gcc -g -O2 -pipe -Wall -I. -c -o util.o util.c
util.c:100:1: pasting "t" and "->" does not give a valid preprocessing token
make: *** [util.o] 错误 1
A:修改 src/compat.h
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成 #define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff

15、编译boa报错:
y.tab.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status
执行一下:make clean

16、不能上网 /etc/resolv.conf,/etc/hosts,/etc/rc.S
我对/etc/rc.S中以下行进行了修改,重启后就能连接了:
/sbin/ifconfig eth0 172.30.6.232 up

mount -o nolock -t nfs 172.30.6.233:/home/rootfs_nfs /tmp/nfs

mount -t nfs -o nolock -o tcp 172.30.6.233:/home/rootfs_nfs /tmp/nfs

最快:mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 172.30.6.233:/home/rootfs_nfs /tmp/nfs

boa放置位置:/home/wuhan/test/software/boa/boa-0.94.13/src

mkdir etc/boa
mkdir var/log
mkdir var/log/boa
mkdir var/www
mkdir var/www/cgi-bin

Unix环境高级编程
Linux内核情景分析

相关文档
相关文档 最新文档