一些ARM Linux开发琐事集锦

经过这么久,终于回到我写这个Blog的原因上了,我又开始搞ARM Linux了。

很后悔之前没有把很多问题写清楚,1年多了,我也忘得差不多了。幸好由于是虚拟机开发,Linux开发环境和我过去在Linux下写的代码在经历了几次系统重装后还健在,这个星期花了3~4天的时间基本上把之前的东西捡起来了。今天主要记录我遗漏的导致这个星期花很多时间整的内容。
 
首先是Source Navigator的安装,我想在本本上也来个Linux,安装Source Navigator的时候就遇到了问题。安装说明里如是说,解压之后:
 
    mkdir snbuild
    cd snbuild
    ../sourcenav-5.20/configure --prefix=/opt/sourcenav
    make
    (become root)
    make install

我在错误的地方(解压之后的文件夹里)建立了snbuild,网上搜了下还有不少人和我犯同样错误,这个会导致说某个文件No rule to make的错误。
写个提示符带目录名的:

    /home/lxz # tar xvzf sourcenav-5.2b2 -C ./
    /home/lxz # mkdir snbuild
    /home/lxz # cd snbuild
    /home/lxz/snbuild # ../sourcenav-5.2b2/configure --prefix=/opt/sourcenav
    /home/lxz/snbuild # make
    (become root)
    /home/lxz/snbuild # make install

还有个错误,说什么“OSF*)”处Unexpected token )之类的,这个好像是Linux各种包安装的问题,另外路径错误好像也会有这个提示,我把Suse 10.1全部安装之后就没有这个问题了。
 
第二个,U-Boot网络下载内核、文件系统使用NFS,Windows下可以安装Omni NFS 5.2。这个软件的共享版支持2个用户连接,用来下载内核是足够了。另外使用Omni NFS的时候请把Windows防火墙禁用。
 
第三,之前我遇到的无法加载根文件系统或者说Busybox无法运行的问题已经找到原因了,有这几个方面共同作用:
1.S3C2410 NAND读写的ECC问题,必须取消ECC,或者使用Bootloader将NAND中的文件系统拷贝到RAM中做ramdisk
2.Busybox工作需要/lib下的共享库文件
3.Busybox静态库(即不使用/lib下的库文件)编译方式有问题
4.根文件系统中必须有“/dev”和“/mnt”,否则无法挂载console
目前我使用我的开发板自带的库文件,以及编译后的Busybox 1.00,成功加载root文件系统(cramfs格式,ramdisk)。解释下,ramdisk、bon、mtdblock是一个类别的东西,cramfs、jffs、yaffs、ext2是一个类别的东西,例如你可以在bon上用cramfs,也可以在ramdisk里用cramfs。
 
第四,mtdblock和bon的关系,目前我的理解是他们都是一种分区方式,当然需要相应的驱动,在vivi中用bon命令可以对NAND进行分区,如bon part add 0 192k 2m,bon命令分区过的NAND需要重新烧写vivi,而mtdblock分区的改变则不用。另外,bon和mtdblock信息是可以同时存在的。
 
第五,U-Boot的NAND WRITE命令在烧写NAND时不会自动擦除NAND Sector(vivi 会自动擦除的),需要手动进行,否则写入数据就不对了。
 
第六,ARM交叉编译器必须解压缩到/usr/local/arm,否则会提示编译器安装错误。
 
时隔一年,再次搞ARM Linux,发现能百度或者Google到的关于遇到的问题的中文文章还是这么少,甚至还有1997年的。希望我的这些琐事可以给你带来些帮助。

你可能感兴趣的:(linux,windows,百度,防火墙,SuSE)