QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2945|回复: 10

skyeye-v1.2b模拟linux-2.6.14

[复制链接]
发表于 2005-12-8 15:54:48 | 显示全部楼层 |阅读模式
初学嵌入式系统,参考本论坛的一些文章刚跑起系统,庆祝一下!
我使用如下软件:
skyeye-v1.2beta:http://gro.clinux.org/frs/download.php/1329/skyeye-20051024.tar.bz2
kernel 2.6.14.3
mach arm-pxa-lobbock
crosstool crosstool 0.38
gcc 4.0.41
glibc 2.3.5
在redhat RHEL4上运行成功.最好完全安装linux,以避免不必要的麻烦.
首先使用crosstool-0.38生成交叉编译环境,其中主要是修改demo-arm-xscale.sh这个文件里的变量.
剩下的基本上是按照精华区里的<在SkyEye上模拟lubbock开发板的运行>那篇文章做的,有些地方需要改动.主要是下面几个地方:
1. skyeye-1.0修改了linux的源码,把物理地址从a0000000 改为c0000000,所以用的是最新的skyeye-testsuit-2.0 上的pxa的skyeye.conf,就需要修改linux-2.6.14.3下的两个文件
arch/arm/mach-pxa/lubbock.c
include/asm-arm/arch-pxa/memory.h
每个文件中都有一行包含了 a0000000
改为 c0000000。
2. 然后修改 .config中的
CONFIG_CMDLINE="root=/dev/ram rw initrd=0xc0800000,0x01000000 console=ttyS0 mem=64M
这里的参数与testsuit 2.0 for pxa 的内核显示的不完全一样,主要是因为:由于testsuit中的设置的ramdisk.img不能大于8M(默认用的是2M),而我需要的是16M,所以我又修改了skyeye.conf中的配置:
mem_bank: map=M, type=RW, addr=0xc0800000, size=0x01000000, file=./ramdisk.img
mem_bank: map=M, type=RW, addr=0xc1800000, size=0x00800000
mem_bank: map=M, type=RW, addr=0xc2000000, size=0x02800000

在skyeye.conf 的目录下使用skyeye -e ./linux-2.6.14.3/vmlinux 启动即可.
发表于 2005-12-8 22:44:12 | 显示全部楼层
hi, that is good job.
perhaps you can contribute your knowledge to our skyeye manual:

http://skyeye.sourceforge.net/wiki/UserManual
回复

使用道具 举报

 楼主| 发表于 2005-12-9 09:16:44 | 显示全部楼层
我最近在整理这次试验详细的过程,争取先写出一个比较详细的中文文档,主要是面向我这样的初学者,目标是使用基本熟悉linux系统的人都能够按照文档的步骤建立起试验环境。
我最近正在参与一个嵌入式项目的策划,主要是用Intel IOP 80331+LSI的SCSI芯片建立一个能够处理进行SCSI协议转换的平台,操作系统要用嵌入式LINUX,初步希望使用skyeye作为模拟环境熟悉嵌入式linux系统的工具,争取一些开发工作也可以在上面进行,Intel的开发板太贵了,公司计划只买一套(4000多美金呀)。整个项目刚开始,许多细节问题还没考虑,以后希望大家多多帮助。我也会把自己的一些学习体会尽量写出来。
回复

使用道具 举报

发表于 2005-12-9 20:54:05 | 显示全部楼层
能贴你的编译器编译过程吗?
我编译了几个都不行,总是在2.6.14内核启动时失败,只有按贴子,用xscale-gcc 3.3.3编译2.6.7的内核才可以
回复

使用道具 举报

 楼主| 发表于 2005-12-10 11:18:17 | 显示全部楼层
我详细写了一下这次试验的过程,希望对你有帮助。
skyeye-v1.2b for RHEL4环境下模拟xscale lubbock运行linux-2.6.14.3
我使用如下软件:
skyeye-v1.2beta:http://gro.clinux.org/frs/download.php/1329/skyeye-20051024.tar.bz2
kernel 2.6.14.3
mach arm-pxa-lobbock
crosstool crosstool 0.38
gcc 4.0.41
glibc 2.3.5
主要是参考精华区的《在SkyEye上模拟lubbock开发板的运行》这篇文章。
1.安装redhat RHEL4 Update2.最好完全安装linux,以避免不必要的麻烦.(曾经在cygwin环境下进行过试验,没有成功。好像是因为cygwin没有完全实现glibc的模拟,所以编译时会出现很多问题,在google上搜索了一下,尝试解决没有完全成功,以后会继续努力争取解决这些问题。)
2.首先使用crosstool-0.38生成交叉编译环境,其中主要是修改demo-arm-xscale.sh这个文件里的变量.需要修改的地方有:
        TARBALLS_DIR=$HOME/downloads
        RESULT_TOP=/home/xjw/toolchain/xscale
        eval `cat arm-xscale.dat gcc-4.0.1-glibc-2.3.5-hdrs-2.6.11.2.dat` sh all.sh --notest
运行:
#sh demo-arm-xscale.sh
这个脚本文件会在/home/xjw/toolchain/xscale目录下自动建立交叉编译环境,其中会使用wget自动下载相关的软件包,安装过程中需要较大的硬盘空间(最好有2G以上),整个编译过程需要比较长的时间(我用AMD 3200+的机器,相对快一些),安装完成后大约108M。
剩下的基本上是按照精华区里的<在SkyEye上模拟lubbock开发板的运行>那篇文章做的,有些地方需要改动.主要是下面几个地方:
3. 使用linux-2.6.14.3,在kernel.org上下载的源文件。
skyeye-1.0修改了linux的源码,把物理地址从a0000000 改为c0000000,所以用的是最新的skyeye-testsuit-2.0 上的pxa的skyeye.conf,这样就需要修改linux-2.6.14.3下的两个文件
arch/arm/mach-pxa/lubbock.c
include/asm-arm/arch-pxa/memory.h
每个文件中都有一行包含了 a0000000
改为 c0000000。
使用以下命令配置linux内核:
#make mrproper
#make ARCH=arm lubbock_defconfig
#make ARCH=arm menuconfig
-------------------------start---------------------------------------
--->选择: boot options
--->修改
(root=/dev/nfs ip=bootp console=ttyS0,115200 mem=64M) Default kernel command string
为:
("root=/dev/ram rw initrd=0xc0800000,0x01000000 console=ttyS0 mem=64M)
--------------------------end----------------------------------------
我最初不小心使用/dev/ram initrd=0xc1000000,0x01000000,这个设置与skyeye.conf中的定义不一样,所以启动内核后,在check initramfs这个步骤时需要很长时间才通过,而且最后系统出错VFS no root fs block(1,0),无法启动。
这里设置的参数initrd=0xc0800000,0x01000000与testsuit 2.0 for pxa 的内核显示的initrd=0xc0800000,0x00800000不一样,主要是因为testsuit中的设置的ramdisk.img不能大于8M(默认用的是2M),而我需要的是16M。同时注意对应这个参数还要修改skyeye.conf中的配置:
mem_bank: map=M, type=RW, addr=0xc0800000, size=0x01000000, file=./ramdisk.img
mem_bank: map=M, type=RW, addr=0xc1800000, size=0x00800000
mem_bank: map=M, type=RW, addr=0xc2000000, size=0x02800000
--------------------------start--------------------------------------
--->选择: Block Devices
--->修改
[ ]RamDisk support
  • RamDisk support
    --->修改
    (4096) Default Ram disk size(kbytes)

    (16384) Default Ram disk size(kbytes)
    --->修改
    [ ] Initial Ram disk (initrd) support
  • Initial Ram disk (initrd) support
    --->保存并退出
    --------------------------end--------------------------------------
    这次试验没有选择支持LCD,想以后再仔细研究有关LCD方面的东西。
    配置完成后,使用以下命令编译内核。其中CROSS_COMPILE用于指定交叉编译器的位置。
    make \
    ARCH=arm \
    CROSS_COMPILE=/usr/local/xscale/gcc-4.0.1-glibc-2.3.5/arm-xscale-linux-gnu/bin/arm-xscale-linux-gnu- \
    zImage
    整个编译过程没有出现错误,最后生成了arch/arm/boot/zIamge文件和vmlinux文件。
    4.编译BusyBox
    make menuconfig
    --->选择: Build Options
    --->修改
    [ ] Build BusyBox as a static binary (no shared libs)
  • Build BusyBox as a static binary (no shared libs)
    --->修改
    [ ] Do you want to build BusyBox with a Cross Compiler?
  • Do you want to build BusyBox with a Cross Compiler?
    (/usr/local/xscale/gcc-4.0.1-glibc-2.3.5/arm-xscale-linux-gnu/bin/arm-xscale-linux-gnu-) Cross Compiler prefix
    (设置交叉编译工具链的位置)
    --->根据自己的需要修改其他的选项
    make
    make install
    生成的可执行文件被放在./_install目录下。

    5.编译TinyLogin:
    编译TinyLogin,除了设置交叉编译工具链之外,还要修改Makefile中的几个参数,让TinyLogin使用自带的passwd和 shadow函数库
    vi Makefile
    --->修改
    DOSTATIC=false

    DOSTATIC=true(将TinyLogin编译成为静态的二进制文件)
    --->修改
    USE_SYSTEM_PWD_GRP=true

    USE_SYSTEM_PWD_GRP=false(使用TinyLogin自带passwd函数库)
    --->修改
    USE_SYSTEM_SHADOW=true

    USE_SYSTEM_SHADOW=false(使用TinyLogin自带shadow函数库)
    --->修改
    CROSS=

    CROSS =/usr/local/xscale/gcc-4.0.1-glibc-2.3.5/arm-xscale-linux-gnu/bin/arm-xscale-linux-gnu-
    (设置交叉编译工具链的位置)
    编译安装好的TinyLogin二进制文件放在tinylogin-1.4/_install目录中

    6.制作开发板的文件系统:
    参考《在SkyEye上模拟lubbock开发板的运行》这篇文章即可。
    注意:如果在cygwin下运行在linux下制作好的ramdisk.img,系统会无法正常启动,是ramdisk.img的问题。经检查发现是/dev/ram和/dev/ramdisk的设置的问题,好像应该改成mknod ram b 1 1 ; ln -fs ram ramdisk。

    在skyeye.conf 的目录下使用skyeye -e ./linux-2.6.14.3/vmlinux 启动即可.
  • 回复

    使用道具 举报

    发表于 2005-12-10 11:59:37 | 显示全部楼层
    谢谢,我昨天晚上试过这个方法,内核编译没问题,在skyeye起动出现错误,我再检查一下.
    另外,另我是作iscsi协议和无线网络处理,不知道用xscale能处理得过来吗,以前外包时用了arm7,但速度感觉不行,不是网卡还是处理器的原因.
    回复

    使用道具 举报

    发表于 2005-12-10 12:55:56 | 显示全部楼层
    还是不行,出错了,过程:
    ------------------------- SkyEye -V1.0 ---------------------------
    Usage: SkyEye [options] program [program args]
    Default mode is STANDALONE mode
    ------------------------------------------------------------------
    Options:
    -e exec-file        the (ELF executable format)kernel file name.
    -d                  in GDB Server mode (can be connected by GDB).
    -c config-file      the skyeye configure file name.
    -h                  This Help Display
    ------------------------------------------------------------------
    debugmode= 0, filename = (null), server TCP port is 12345
    arch: arm
    cpu info: xscale, pxa25x, 69052100, fffffff0, 2
    mach info: name pxa_lubbock, mach_init addr 0x8071170
    SKYEYE: use xscale mmu ops
    Loaded RAM   ./ramdisk.img
    exec file "/ping/arm/kernel/linux-2.6.14.3/vmlinux"'s format is elf32-little.
    load section .init: addr = 0xc0008000  size = 0x00016000.
    load section .text: addr = 0xc001e000  size = 0x001a8078.
    not load section .pci_fixup: addr = 0xc01c6078  size = 0x00000000 .
    load section __ksymtab: addr = 0xc01c6078  size = 0x000039b8.
    load section __ksymtab_gpl: addr = 0xc01c9a30  size = 0x00000768.
    not load section __kcrctab: addr = 0xc01ca198  size = 0x00000000 .
    not load section __kcrctab_gpl: addr = 0xc01ca198  size = 0x00000000 .
    load section __ksymtab_strings: addr = 0xc01ca198  size = 0x0000a240.
    load section __param: addr = 0xc01d43d8  size = 0x0000044c.
    load section .data: addr = 0xc01d6000  size = 0x00046350.
    not load section .bss: addr = 0xc021c360  size = 0x00015ff4 .
    not load section .comment: addr = 0x00000000  size = 0x0000210c .
    not load section .debug_abbrev: addr = 0x00000000  size = 0x00075950 .
    not load section .debug_info: addr = 0x00000000  size = 0x00d1aa21 .
    not load section .debug_line: addr = 0x00000000  size = 0x000d00d7 .
    not load section .debug_pubnames: addr = 0x00000000  size = 0x00015855 .
    not load section .debug_str: addr = 0x00000000  size = 0x000599bc .
    not load section .debug_aranges: addr = 0x00000000  size = 0x000046e8 .
    not load section .debug_frame: addr = 0x00000000  size = 0x0003dd90 .
    not load section .debug_loc: addr = 0x00000000  size = 0x0013e347 .
    not load section .debug_ranges: addr = 0x00000000  size = 0x00017c18 .
    start addr is set to 0xc0008000 by exec file.
    `Linux version 2.6.14.3 (root@dev) (gcc version 4.0.1) #1 Sat Dec 10 12:44:06 Local time zone must be set--see zic manu
    CPU: XScale-PXA250 [69052100] revision 0 (ARMv5TE)
    Machine: Intel DBPXA250 Development Platform (aka Lubbock)
    Memory policy: ECC disabled, Data cache writeback
    Memory clock: 99.53MHz (*27)
    Run Mode clock: 99.53MHz (*1)
    Turbo Mode clock: 99.53MHz (*1.0, inactive)
    CPU0: D VIVT undefined 5 cache
    CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
    CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
    Built 1 zonelists
    Kernel command line: root=/dev/ram rw initrd=0xc0800000,0x01000000 console=ttyS0 mem=64M
    PID hash table entries: 512 (order: 9, 8192 bytes)
    Console: colour dummy device 80x30
    Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
    Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
    Memory: 64MB = 64MB total
    Memory: 46208KB available (1754K code, 368K data, 88K init)
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd
    Freeing initrd memory: 16384K
    softlockup thread 0 started up.
    NET: Registered protocol family 16
    pxa2xx-i2s: failed to claim resource 0
    Device 'pxa2xx-i2c.0' does not have a release() function, it is broken and must be fixed.
    Badness in device_release at drivers/base/core.c:83
    [<c0023b64>] (dump_stack+0x0/0x14) from [<c0104e14>] (device_release+0x50/0x64)
    [<c0104dc4>] (device_release+0x0/0x64) from [<c00dc388>] (kobject_cleanup+0x68/0x8c)
    [<c00dc320>] (kobject_cleanup+0x0/0x8c) from [<c00dc3c0>] (kobject_release+0x14/0x1
    r7 = 00000008  r6 = 00000038  r5 = C00DC3AC  r4 = C01DA7A4
    [<c00dc3ac>] (kobject_release+0x0/0x1 from [<c00dcbc4>] (kref_put+0x84/0xa0)
    [<c00dcb40>] (kref_put+0x0/0xa0) from [<c00dbe14>] (kobject_put+0x20/0x2
    r5 = 00000003  r4 = C01DA724
    [<c00dbdf4>] (kobject_put+0x0/0x2 from [<c0104fd8>] (put_device+0x1c/0x20)
    [<c0104fbc>] (put_device+0x0/0x20) from [<c010517c>] (device_unregister+0x1c/0x20)
    [<c0105160>] (device_unregister+0x0/0x20) from [<c0108058>] (platform_device_unregister+0x58/0x5c)
    r4 = C01DA71C
    [<c0108000>] (platform_device_unregister+0x0/0x5c) from [<c010809c>] (platform_add_devices+0x40/0x6
    r6 = FFFFFFF0  r5 = 00000006  r4 = C001CA68
    [<c010805c>] (platform_add_devices+0x0/0x6 from [<c00108c4>] (pxa_init+0x18/0x20)
    r7 = 00000000  r6 = 00000000  r5 = C001BB30  r4 = C02F6000
    [<c00108ac>] (pxa_init+0x0/0x20) from [<c001e0e0>] (init+0x88/0x21
    [<c001e058>] (init+0x0/0x21 from [<c003727c>] (do_exit+0x0/0xaa0)
    r6 = 00000000  r5 = 00000000  r4 = 00000000
    Device 'pxa2xx-uart.2' does not have a release() function, it is broken and must be fixed.
    Badness in device_release at drivers/base/core.c:83
    [<c0023b64>] (dump_stack+0x0/0x14) from [<c0104e14>] (device_release+0x50/0x64)
    [<c0104dc4>] (device_release+0x0/0x64) from [<c00dc388>] (kobject_cleanup+0x68/0x8c)
    [<c00dc320>] (kobject_cleanup+0x0/0x8c) from [<c00dc3c0>] (kobject_release+0x14/0x1
    r7 = 00000008  r6 = 00000000  r5 = C00DC3AC  r4 = C01DA8A8
    [<c00dc3ac>] (kobject_release+0x0/0x1 from [<c00dcbc4>] (kref_put+0x84/0xa0)
    [<c00dcb40>] (kref_put+0x0/0xa0) from [<c00dbe14>] (kobject_put+0x20/0x28)
    r5 = 00000001  r4 = C01DA828
    [<c00dbdf4>] (kobject_put+0x0/0x28) from [<c0104fd8>] (put_device+0x1c/0x20)
    [<c0104fbc>] (put_device+0x0/0x20) from [<c010517c>] (device_unregister+0x1c/0x20)
    [<c0105160>] (device_unregister+0x0/0x20) from [<c0108058>] (platform_device_unregister+0x58/0x5c)
    r4 = C01DA820
    [<c0108000>] (platform_device_unregister+0x0/0x5c) from [<c010809c>] (platform_add_devices+0x40/0x68)
    r6 = FFFFFFF0  r5 = 00000005  r4 = C001CA64
    [<c010805c>] (platform_add_devices+0x0/0x68) from [<c00108c4>] (pxa_init+0x18/0x20)
    r7 = 00000000  r6 = 00000000  r5 = C001BB30  r4 = C02F6000
    [<c00108ac>] (pxa_init+0x0/0x20) from [<c001e0e0>] (init+0x88/0x218)
    [<c001e058>] (init+0x0/0x218) from [<c003727c>] (do_exit+0x0/0xaa0)
    r6 = 00000000  r5 = 00000000  r4 = 00000000
    Device 'pxa2xx-uart.1' does not have a release() function, it is broken and must be fixed.
    Badness in device_release at drivers/base/core.c:83
    [<c0023b64>] (dump_stack+0x0/0x14) from [<c0104e14>] (device_release+0x50/0x64)
    [<c0104dc4>] (device_release+0x0/0x64) from [<c00dc388>] (kobject_cleanup+0x68/0x8c)
    [<c00dc320>] (kobject_cleanup+0x0/0x8c) from [<c00dc3c0>] (kobject_release+0x14/0x18)
    r7 = 00000008  r6 = 00000000  r5 = C00DC3AC  r4 = C01DA9AC
    [<c00dc3ac>] (kobject_release+0x0/0x18) from [<c00dcbc4>] (kref_put+0x84/0xa0)
    [<c00dcb40>] (kref_put+0x0/0xa0) from [<c00dbe14>] (kobject_put+0x20/0x28)
    r5 = 00000001  r4 = C01DA92C
    [<c00dbdf4>] (kobject_put+0x0/0x28) from [<c0104fd8>] (put_device+0x1c/0x20)
    [<c0104fbc>] (put_device+0x0/0x20) from [<c010517c>] (device_unregister+0x1c/0x20)
    [<c0105160>] (device_unregister+0x0/0x20) from [<c0108058>] (platform_device_unregister+0x58/0x5c)
    r4 = C01DA924
    [<c0108000>] (platform_device_unregister+0x0/0x5c) from [<c010809c>] (platform_add_devices+0x40/0x68)
    r6 = FFFFFFF0  r5 = 00000004  r4 = C001CA60
    [<c010805c>] (platform_add_devices+0x0/0x68) from [<c00108c4>] (pxa_init+0x18/0x20)
    r7 = 00000000  r6 = 00000000  r5 = C001BB30  r4 = C02F6000
    [<c00108ac>] (pxa_init+0x0/0x20) from [<c001e0e0>] (init+0x88/0x218)
    [<c001e058>] (init+0x0/0x218) from [<c003727c>] (do_exit+0x0/0xaa0)
    r6 = 00000000  r5 = 00000000  r4 = 00000000
    Device 'pxa2xx-uart.0' does not have a release() function, it is broken and must be fixed.
    Badness in device_release at drivers/base/core.c:83
    [<c0023b64>] (dump_stack+0x0/0x14) from [<c0104e14>] (device_release+0x50/0x64)
    [<c0104dc4>] (device_release+0x0/0x64) from [<c00dc388>] (kobject_cleanup+0x68/0x8c)
    [<c00dc320>] (kobject_cleanup+0x0/0x8c) from [<c00dc3c0>] (kobject_release+0x14/0x18)
    r7 = 00000008  r6 = 00000000  r5 = C00DC3AC  r4 = C01DAAB0
    [<c00dc3ac>] (kobject_release+0x0/0x18) from [<c00dcbc4>] (kref_put+0x84/0xa0)
    [<c00dcb40>] (kref_put+0x0/0xa0) from [<c00dbe14>] (kobject_put+0x20/0x28)
    r5 = 00000001  r4 = C01DAA30
    [<c00dbdf4>] (kobject_put+0x0/0x28) from [<c0104fd8>] (put_device+0x1c/0x20)
    [<c0104fbc>] (put_device+0x0/0x20) from [<c010517c>] (device_unregister+0x1c/0x20)
    [<c0105160>] (device_unregister+0x0/0x20) from [<c0108058>] (platform_device_unregister+0x58/0x5c)
    r4 = C01DAA28
    [<c0108000>] (platform_device_unregister+0x0/0x5c) from [<c010809c>] (platform_add_devices+0x40/0x68)
    r6 = FFFFFFF0  r5 = 00000003  r4 = C001CA5C
    [<c010805c>] (platform_add_devices+0x0/0x68) from [<c00108c4>] (pxa_init+0x18/0x20)
    r7 = 00000000  r6 = 00000000  r5 = C001BB30  r4 = C02F6000
    [<c00108ac>] (pxa_init+0x0/0x20) from [<c001e0e0>] (init+0x88/0x218)
    [<c001e058>] (init+0x0/0x218) from [<c003727c>] (do_exit+0x0/0xaa0)
    r6 = 00000000  r5 = 00000000  r4 = 00000000
    Device 'pxa2xx-fb' does not have a release() function, it is broken and must be fixed.
    Badness in device_release at drivers/base/core.c:83
    [<c0023b64>] (dump_stack+0x0/0x14) from [<c0104e14>] (device_release+0x50/0x64)
    [<c0104dc4>] (device_release+0x0/0x64) from [<c00dc388>] (kobject_cleanup+0x68/0x8c)
    [<c00dc320>] (kobject_cleanup+0x0/0x8c) from [<c00dc3c0>] (kobject_release+0x14/0x18)
    r7 = 00000008  r6 = 00000038  r5 = C00DC3AC  r4 = C01DABB4
    [<c00dc3ac>] (kobject_release+0x0/0x18) from [<c00dcbc4>] (kref_put+0x84/0xa0)
    [<c00dcb40>] (kref_put+0x0/0xa0) from [<c00dbe14>] (kobject_put+0x20/0x28)
    r5 = 00000003  r4 = C01DAB34
    [<c00dbdf4>] (kobject_put+0x0/0x28) from [<c0104fd8>] (put_device+0x1c/0x20)
    [<c0104fbc>] (put_device+0x0/0x20) from [<c010517c>] (device_unregister+0x1c/0x20)
    [<c0105160>] (device_unregister+0x0/0x20) from [<c0108058>] (platform_device_unregister+0x58/0x5c)
    r4 = C01DAB2C
    [<c0108000>] (platform_device_unregister+0x0/0x5c) from [<c010809c>] (platform_add_devices+0x40/0x68)
    r6 = FFFFFFF0  r5 = 00000002  r4 = C001CA58
    [<c010805c>] (platform_add_devices+0x0/0x68) from [<c00108c4>] (pxa_init+0x18/0x20)
    r7 = 00000000  r6 = 00000000  r5 = C001BB30  r4 = C02F6000
    [<c00108ac>] (pxa_init+0x0/0x20) from [<c001e0e0>] (init+0x88/0x218)
    [<c001e058>] (init+0x0/0x218) from [<c003727c>] (do_exit+0x0/0xaa0)
    r6 = 00000000  r5 = 00000000  r4 = 00000000
    Device 'pxa2xx-udc' does not have a release() function, it is broken and must be fixed.
    Badness in device_release at drivers/base/core.c:83
    [<c0023b64>] (dump_stack+0x0/0x14) from [<c0104e14>] (device_release+0x50/0x64)
    [<c0104dc4>] (device_release+0x0/0x64) from [<c00dc388>] (kobject_cleanup+0x68/0x8c)
    [<c00dc320>] (kobject_cleanup+0x0/0x8c) from [<c00dc3c0>] (kobject_release+0x14/0x18)
    r7 = 00000008  r6 = 00000038  r5 = C00DC3AC  r4 = C01DACF8
    [<c00dc3ac>] (kobject_release+0x0/0x18) from [<c00dcbc4>] (kref_put+0x84/0xa0)
    [<c00dcb40>] (kref_put+0x0/0xa0) from [<c00dbe14>] (kobject_put+0x20/0x28)
    r5 = 00000003  r4 = C01DAC78
    [<c00dbdf4>] (kobject_put+0x0/0x28) from [<c0104fd8>] (put_device+0x1c/0x20)
    [<c0104fbc>] (put_device+0x0/0x20) from [<c010517c>] (device_unregister+0x1c/0x20)
    [<c0105160>] (device_unregister+0x0/0x20) from [<c0108058>] (platform_device_unregister+0x58/0x5c)
    r4 = C01DAC70
    [<c0108000>] (platform_device_unregister+0x0/0x5c) from [<c010809c>] (platform_add_devices+0x40/0x68)
    r6 = FFFFFFF0  r5 = 00000001  r4 = C001CA54
    [<c010805c>] (platform_add_devices+0x0/0x68) from [<c00108c4>] (pxa_init+0x18/0x20)
    r7 = 00000000  r6 = 00000000  r5 = C001BB30  r4 = C02F6000
    [<c00108ac>] (pxa_init+0x0/0x20) from [<c001e0e0>] (init+0x88/0x218)
    [<c001e058>] (init+0x0/0x218) from [<c003727c>] (do_exit+0x0/0xaa0)
    r6 = 00000000  r5 = 00000000  r4 = 00000000
    Device 'pxa2xx-mci' does not have a release() function, it is broken and must be fixed.
    Badness in device_release at drivers/base/core.c:83
    [<c0023b64>] (dump_stack+0x0/0x14) from [<c0104e14>] (device_release+0x50/0x64)
    [<c0104dc4>] (device_release+0x0/0x64) from [<c00dc388>] (kobject_cleanup+0x68/0x8c)
    [<c00dc320>] (kobject_cleanup+0x0/0x8c) from [<c00dc3c0>] (kobject_release+0x14/0x18)
    r7 = 00000008  r6 = 00000038  r5 = C00DC3AC  r4 = C01DAE3C
    [<c00dc3ac>] (kobject_release+0x0/0x18) from [<c00dcbc4>] (kref_put+0x84/0xa0)
    [<c00dcb40>] (kref_put+0x0/0xa0) from [<c00dbe14>] (kobject_put+0x20/0x28)
    r5 = 00000003  r4 = C01DADBC
    [<c00dbdf4>] (kobject_put+0x0/0x28) from [<c0104fd8>] (put_device+0x1c/0x20)
    [<c0104fbc>] (put_device+0x0/0x20) from [<c010517c>] (device_unregister+0x1c/0x20)
    [<c0105160>] (device_unregister+0x0/0x20) from [<c0108058>] (platform_device_unregister+0x58/0x5c)
    r4 = C01DADB4
    [<c0108000>] (platform_device_unregister+0x0/0x5c) from [<c010809c>] (platform_add_devices+0x40/0x68)
    r6 = FFFFFFF0  r5 = 00000000  r4 = C001CA50
    [<c010805c>] (platform_add_devices+0x0/0x68) from [<c00108c4>] (pxa_init+0x18/0x20)
    r7 = 00000000  r6 = 00000000  r5 = C001BB30  r4 = C02F6000
    [<c00108ac>] (pxa_init+0x0/0x20) from [<c001e0e0>] (init+0x88/0x218)
    [<c001e058>] (init+0x0/0x218) from [<c003727c>] (do_exit+0x0/0xaa0)
    r6 = 00000000  r5 = 00000000  r4 = 00000000
    Badness in kref_get at lib/kref.c:32
    [<c0023b64>] (dump_stack+0x0/0x14) from [<c00dcb14>] (kref_get+0x34/0x60)
    [<c00dcae0>] (kref_get+0x0/0x60) from [<c00dbdec>] (kobject_get+0x1c/0x24)
    r4 = C01DA304
    [<c00dbdd0>] (kobject_get+0x0/0x24) from [<c0105d84>] (get_bus+0x28/0x3c)
    r4 = C01EC118
    [<c0105d5c>] (get_bus+0x0/0x3c) from [<c01062b0>] (bus_add_driver+0x18/0x128)
    [<c0106298>] (bus_add_driver+0x0/0x128) from [<c0106d34>] (driver_register+0x3c/0x48)
    r8 = 00000000  r7 = 00000000  r6 = 00000000  r5 = C001BB64
    r4 = C01EC118
    [<c0106cf8>] (driver_register+0x0/0x48) from [<c0028b24>] (sa1111_driver_register+0x28/0x38)
    r4 = C02F6000
    [<c0028afc>] (sa1111_driver_register+0x0/0x38) from [<c0017a80>] (sa1111_drv_pcmcia_init+0x14/0x1c)
    [<c0017a6c>] (sa1111_drv_pcmcia_init+0x0/0x1c) from [<c001e0e0>] (init+0x88/0x218)
    [<c001e058>] (init+0x0/0x218) from [<c003727c>] (do_exit+0x0/0xaa0)
    r6 = 00000000  r5 = 00000000  r4 = 00000000
    Badness in kref_get at lib/kref.c:32
    [<c0023b64>] (dump_stack+0x0/0x14) from [<c00dcb14>] (kref_get+0x34/0x60)
    [<c00dcae0>] (kref_get+0x0/0x60) from [<c00dbdec>] (kobject_get+0x1c/0x24)
    r4 = C01DA358
    [<c00dbdd0>] (kobject_get+0x0/0x24) from [<c00dc20c>] (kobject_init+0x38/0x50)
    r4 = C01EC12C
    [<c00dc1d4>] (kobject_init+0x0/0x50) from [<c00dc2e0>] (kobject_register+0x1c/0x5c)
    r4 = C01EC12C
    [<c00dc2c4>] (kobject_register+0x0/0x5c) from [<c01062e8>] (bus_add_driver+0x50/0x128)
    r5 = C01EC118  r4 = 00000000
    [<c0106298>] (bus_add_driver+0x0/0x128) from [<c0106d34>] (driver_register+0x3c/0x48)
    r8 = 00000000  r7 = 00000000  r6 = 00000000  r5 = C001BB64
    r4 = C01EC118
    [<c0106cf8>] (driver_register+0x0/0x48) from [<c0028b24>] (sa1111_driver_register+0x28/0x38)
    r4 = C02F6000
    [<c0028afc>] (sa1111_driver_register+0x0/0x38) from [<c0017a80>] (sa1111_drv_pcmcia_init+0x14/0x1c)
    [<c0017a6c>] (sa1111_drv_pcmcia_init+0x0/0x1c) from [<c001e0e0>] (init+0x88/0x218)
    [<c001e058>] (init+0x0/0x218) from [<c003727c>] (do_exit+0x0/0xaa0)
    r6 = 00000000  r5 = 00000000  r4 = 00000000
    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    pgd = c0004000
    [00000000] *pgd=00000000
    Internal error: Oops: 807 [#1]
    Modules linked in:
    CPU: 0
    PC is at kobject_add+0x70/0x130
    LR is at kobject_get+0x1c/0x24
    pc : [<c00dc030>]    lr : [<c00dbdec>]    Not tainted
    sp : c02f7f48  ip : c02f7f34  fp : c02f7f68
    r10: 00000000  r9 : 00000000  r8 : c01da358
    r7 : c01ec12c  r6 : c01da2f0  r5 : ffffffea  r4 : c01ec12c
    r3 : c01da350  r2 : c01ec148  r1 : 00000000  r0 : c01da358
    Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  Segment kernel
    Control: 3907  Table: C0004000  DAC: 00000017
    Process swapper (pid: 1, stack limit = 0xc02f6194)
    Stack: (0xc02f7f48 to 0xc02f8000)
    7f40:                   c01ec12c ffffffea c01da2f0 c01ec12c 00000000 c02f7f80
    7f60: c02f7f6c c00dc2e8 c00dbfcc 00000000 c01ec118 c02f7fa4 c02f7f84 c01062e8
    7f80: c00dc2d0 c01ec118 c001bb64 00000000 00000000 00000000 c02f7fb8 c02f7fa8
    7fa0: c0106d34 c01062a4 c02f6000 c02f7fc8 c02f7fbc c0028b24 c0106d04 c02f7fd8
    7fc0: c02f7fcc c0017a80 c0028b08 c02f7ff4 c02f7fdc c001e0e0 c0017a78 00000000
    7fe0: 00000000 00000000 00000000 c02f7ff8 c003727c c001e064 00000000 00000000
    Backtrace:
    [<c00dbfc0>] (kobject_add+0x0/0x130) from [<c00dc2e8>] (kobject_register+0x24/0x5c)
    r8 = 00000000  r7 = C01EC12C  r6 = C01DA2F0  r5 = FFFFFFEA
    r4 = C01EC12C
    [<c00dc2c4>] (kobject_register+0x0/0x5c) from [<c01062e8>] (bus_add_driver+0x50/0x128)
    r5 = C01EC118  r4 = 00000000
    [<c0106298>] (bus_add_driver+0x0/0x128) from [<c0106d34>] (driver_register+0x3c/0x48)
    r8 = 00000000  r7 = 00000000  r6 = 00000000  r5 = C001BB64
    r4 = C01EC118
    [<c0106cf8>] (driver_register+0x0/0x48) from [<c0028b24>] (sa1111_driver_register+0x28/0x38)
    r4 = C02F6000
    [<c0028afc>] (sa1111_driver_register+0x0/0x38) from [<c0017a80>] (sa1111_drv_pcmcia_init+0x14/0x1c)
    [<c0017a6c>] (sa1111_drv_pcmcia_init+0x0/0x1c) from [<c001e0e0>] (init+0x88/0x218)
    [<c001e058>] (init+0x0/0x218) from [<c003727c>] (do_exit+0x0/0xaa0)
    r6 = 00000000  r5 = 00000000  r4 = 00000000
    Code: e2833008 e5931004 e584301c e5832004 (e5812000)
    <0>Kernel panic - not syncing: Attempted to kill init!
    回复

    使用道具 举报

    发表于 2005-12-10 12:58:57 | 显示全部楼层
    我用的系统是gentoo 2005.1
    gcc 3.4.4
    glibc 2.3.5
    nptl
    CFLAGS="-O3 -march=pentium4  -mmmx -msse -msse2 -mfpmath=sse -pipe -fomit-frame-pointer "
    回复

    使用道具 举报

     楼主| 发表于 2005-12-12 09:43:56 | 显示全部楼层
    我也遇到过这个问题,是默认的lubbock_defconfig设置中带PCCARD(PCMCIA)支持,我这个试验中暂时不需要,所以在配置内核是去掉了“Bus support->PCCARD support”。
    最初遇到这个问题是,在google上搜索了一下,有一个地方好像说是在2.6.14版本中i2c程序源码中有一处好像有错误,我照着改了一下,又出现了其它错误,后来索性去掉了PCMCIA支持。

    xscale的处理能力应该没问题,最高800MHz应该够了吧,我们使用的很多台湾产的RAID控制器都使用更低级别的处理器来提供SATA/SCSI/FC的RAID功能,性能肯定没有问题;也有使用xscale做iSCSI的,不过我们还没做过产品测试,性能不好说,但是应该也不会差到哪里去。
    回复

    使用道具 举报

    发表于 2005-12-12 11:59:28 | 显示全部楼层
    谢谢了,我只去掉pccard,在起动时i2c会报错,但系统可以起来了,先将就用着.以后还请多多指教,我是被逼上架的,很多东西不懂.
    回复

    使用道具 举报

     楼主| 发表于 2005-12-12 13:42:40 | 显示全部楼层
    不客气。我以前常用Redhat LINUX,对于嵌入式linux也属于初学。
    最近几天在研究LCD相关的资料,我们的项目只需要单色液晶,能显示大约4X16汉字即可,输入装置拟采用四个按键(取消,确定,向前,向后),不知有谁做过相关项目,有关软硬件给点建议吧。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    GMT+8, 2024-11-27 07:00 , Processed in 0.121125 second(s), 15 queries .

    © 2021 Powered by Discuz! X3.5.

    快速回复 返回顶部 返回列表