Ich bin auch über www.wehavemorefun.de darauf gekommen und habe meine MMC-Karte ebenfalls so angeschlossen. Den Treiber konnte ich aber bisher noch nicht übersetzen.
Wie hast Du es denn geschafft den Treiber zu kompilieren?
Ich bekomme nur einen Haufen von Fehlermeldungen geliefert:
Code:
benutzer@computer:~/mmc$ ~/freetz-1.0/toolchain/target/bin/mipsel-linux-uclibc-gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -fno-strict-aliasing -mips32 -isystem ~/freetz-1.0/toolchain/target/include -O2 -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE} -fno-pic -mno-abicalls -mlong-calls -o mmc.o mmc.c
In file included from ~/freetz-1.0/toolchain/target/include/linux/param.h:4,
from ~/freetz-1.0/toolchain/target/include/asm/delay.h:14,
from ~/freetz-1.0/toolchain/target/include/linux/delay.h:12,
from mmc.c:1:
~/freetz-1.0/toolchain/target/include/asm/param.h:14:60: error: param.h: No such file or directory
In file included from ~/freetz-1.0/toolchain/target/include/asm/system.h:18,
from ~/freetz-1.0/toolchain/target/include/asm/processor.h:22,
from ~/freetz-1.0/toolchain/target/include/linux/prefetch.h:14,
from ~/freetz-1.0/toolchain/target/include/linux/list.h:7,
from ~/freetz-1.0/toolchain/target/include/linux/timer.h:5,
from mmc.c:2:
~/freetz-1.0/toolchain/target/include/asm/addrspace.h:14:20: error: spaces.h: No such file or directory
In file included from ~/freetz-1.0/toolchain/target/include/asm/system.h:19,
from ~/freetz-1.0/toolchain/target/include/asm/processor.h:22,
from ~/freetz-1.0/toolchain/target/include/linux/prefetch.h:14,
from ~/freetz-1.0/toolchain/target/include/linux/list.h:7,
from ~/freetz-1.0/toolchain/target/include/linux/timer.h:5,
from mmc.c:2:
~/freetz-1.0/toolchain/target/include/asm/cpu-features.h:15:35: error: cpu-feature-overrides.h: No such file or directory
In file included from ~/freetz-1.0/toolchain/target/include/linux/timex.h:61,
from ~/freetz-1.0/toolchain/target/include/linux/sched.h:11,
from ~/freetz-1.0/toolchain/target/include/linux/module.h:10,
from mmc.c:4:
~/freetz-1.0/toolchain/target/include/asm/timex.h:34:19: error: timex.h: No such file or directory
In file included from ~/freetz-1.0/toolchain/target/include/linux/sched.h:12,
from ~/freetz-1.0/toolchain/target/include/linux/module.h:10,
from mmc.c:4:
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:213:31: error: division by zero in #if
In file included from ~/freetz-1.0/toolchain/target/include/linux/sched.h:12,
from ~/freetz-1.0/toolchain/target/include/linux/module.h:10,
from mmc.c:4:
~/freetz-1.0/toolchain/target/include/linux/jiffies.h: In function 'timespec_to_jiffies':
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:318: error: 'CLOCK_TICK_RATE' undeclared (first use in this function)
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:318: error: (Each undeclared identifier is reported only once
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:318: error: for each function it appears in.)
~/freetz-1.0/toolchain/target/include/linux/jiffies.h: In function 'jiffies_to_timespec':
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:337: error: 'CLOCK_TICK_RATE' undeclared (first use in this function)
~/freetz-1.0/toolchain/target/include/linux/jiffies.h: In function 'timeval_to_jiffies':
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:359: error: 'CLOCK_TICK_RATE' undeclared (first use in this function)
~/freetz-1.0/toolchain/target/include/linux/jiffies.h: In function 'jiffies_to_timeval':
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:375: error: 'CLOCK_TICK_RATE' undeclared (first use in this function)
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:385:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
~/freetz-1.0/toolchain/target/include/linux/jiffies.h:416:6: error: division by zero in #if
In file included from ~/freetz-1.0/toolchain/target/include/linux/topology.h:34,
from ~/freetz-1.0/toolchain/target/include/linux/mmzone.h:407,
from ~/freetz-1.0/toolchain/target/include/linux/gfp.h:4,
from ~/freetz-1.0/toolchain/target/include/linux/slab.h:15,
from ~/freetz-1.0/toolchain/target/include/linux/percpu.h:4,
from ~/freetz-1.0/toolchain/target/include/linux/sched.h:34,
from ~/freetz-1.0/toolchain/target/include/linux/module.h:10,
from mmc.c:4:
~/freetz-1.0/toolchain/target/include/asm/topology.h:1:22: error: topology.h: No such file or directory
In file included from mmc.c:5:
~/freetz-1.0/toolchain/target/include/linux/mm.h: In function 'lowmem_page_address':
~/freetz-1.0/toolchain/target/include/linux/mm.h:527: error: 'PAGE_OFFSET' undeclared (first use in this function)
In file included from mmc.c:12:
~/freetz-1.0/toolchain/target/include/asm/io.h:29:25: error: mangle-port.h: No such file or directory
In file included from mmc.c:12:
~/freetz-1.0/toolchain/target/include/asm/io.h: In function 'virt_to_phys':
~/freetz-1.0/toolchain/target/include/asm/io.h:141: error: 'PAGE_OFFSET' undeclared (first use in this function)
~/freetz-1.0/toolchain/target/include/asm/io.h: In function 'phys_to_virt':
~/freetz-1.0/toolchain/target/include/asm/io.h:158: error: 'PAGE_OFFSET' undeclared (first use in this function)
~/freetz-1.0/toolchain/target/include/asm/io.h: In function 'isa_virt_to_bus':
~/freetz-1.0/toolchain/target/include/asm/io.h:166: error: 'PAGE_OFFSET' undeclared (first use in this function)
~/freetz-1.0/toolchain/target/include/asm/io.h: In function 'isa_bus_to_virt':
~/freetz-1.0/toolchain/target/include/asm/io.h:171: error: 'PAGE_OFFSET' undeclared (first use in this function)
~/freetz-1.0/toolchain/target/include/asm/io.h: In function '__ioremap_mode':
~/freetz-1.0/toolchain/target/include/asm/io.h:204: error: 'UNCAC_BASE' undeclared (first use in this function)
~/freetz-1.0/toolchain/target/include/asm/io.h:211: error: 'IO_BASE' undeclared (first use in this function)
mmc.c:20:23: error: linux/blk.h: No such file or directory
mmc.c: At top level:
mmc.c:43: error: array type has incomplete element type
mmc.c:223: error: expected ')' before '*' token
mmc.c: In function 'mmc_open':
mmc.c:302: error: 'MOD_INC_USE_COUNT' undeclared (first use in this function)
mmc.c:296: warning: unused variable 'device'
mmc.c:294: warning: unused parameter 'inode'
mmc.c: In function 'mmc_release':
mmc.c:310: warning: implicit declaration of function 'fsync_dev'
mmc.c:311: warning: implicit declaration of function 'invalidate_buffers'
mmc.c:314: error: 'MOD_DEC_USE_COUNT' undeclared (first use in this function)
mmc.c: At top level:
mmc.c:320: error: expected ')' before 'dev'
mmc.c: In function 'mmc_ioctl':
mmc.c:357: warning: implicit declaration of function 'mmc_revalidate'
mmc.c:371: warning: implicit declaration of function 'blk_ioctl'
mmc.c:342: warning: unused parameter 'filp'
mmc.c: In function 'mmc_card_init':
mmc.c:381: warning: implicit declaration of function 'save_flags'
mmc.c:382: warning: implicit declaration of function 'cli'
mmc.c:402: warning: implicit declaration of function 'restore_flags'
mmc.c: At top level:
mmc.c:536: error: expected ')' before 'dev'
mmc.c:558: error: variable 'hd_gendisk' has initializer but incomplete type
mmc.c:558: error: static declaration of 'hd_gendisk' follows non-static declaration
mmc.c:319: error: previous declaration of 'hd_gendisk' was here
mmc.c:559: error: unknown field 'major' specified in initializer
mmc.c:559: warning: excess elements in struct initializer
mmc.c:559: warning: (near initialization for 'hd_gendisk')
mmc.c:560: error: unknown field 'major_name' specified in initializer
mmc.c:560: warning: excess elements in struct initializer
mmc.c:560: warning: (near initialization for 'hd_gendisk')
mmc.c:561: error: unknown field 'minor_shift' specified in initializer
mmc.c:561: warning: excess elements in struct initializer
mmc.c:561: warning: (near initialization for 'hd_gendisk')
mmc.c:562: error: unknown field 'max_p' specified in initializer
mmc.c:562: warning: excess elements in struct initializer
mmc.c:562: warning: (near initialization for 'hd_gendisk')
mmc.c:563: error: unknown field 'part' specified in initializer
mmc.c:563: warning: excess elements in struct initializer
mmc.c:563: warning: (near initialization for 'hd_gendisk')
mmc.c:564: error: unknown field 'sizes' specified in initializer
mmc.c:564: warning: excess elements in struct initializer
mmc.c:564: warning: (near initialization for 'hd_gendisk')
mmc.c:565: error: unknown field 'fops' specified in initializer
mmc.c:565: warning: excess elements in struct initializer
mmc.c:565: warning: (near initialization for 'hd_gendisk')
mmc.c: In function 'mmc_init':
mmc.c:601: error: 'blk_size' undeclared (first use in this function)
mmc.c:606: error: 'blksize_size' undeclared (first use in this function)
mmc.c:607: error: 'hardsect_size' undeclared (first use in this function)
mmc.c:608: error: 'max_sectors' undeclared (first use in this function)
mmc.c:610: error: invalid use of undefined type 'struct gendisk'
mmc.c:612: warning: implicit declaration of function 'register_disk'
mmc.c: In function 'mmc_exit':
mmc.c:620: error: 'blk_size' undeclared (first use in this function)
mmc.c:621: error: 'blksize_size' undeclared (first use in this function)
mmc.c:622: error: 'hardsect_size' undeclared (first use in this function)
mmc.c:623: error: 'max_sectors' undeclared (first use in this function)
mmc.c: In function 'mmc_driver_init':
mmc.c:661: warning: implicit declaration of function 'devfs_register_blkdev'
mmc.c:668: warning: implicit declaration of function 'blk_init_queue'
mmc.c:668: warning: implicit declaration of function 'BLK_DEFAULT_QUEUE'
mmc.c:668: error: 'mmc_request' undeclared (first use in this function)
mmc.c:670: error: 'read_ahead' undeclared (first use in this function)
mmc.c:671: warning: implicit declaration of function 'add_gendisk'
mmc.c: In function 'mmc_driver_exit':
mmc.c:691: warning: implicit declaration of function 'blk_cleanup_queue'
mmc.c:692: warning: implicit declaration of function 'del_gendisk'
mmc.c:693: warning: implicit declaration of function 'devfs_unregister_blkdev'
benutzer@computer:~/mmc$
Beispielsweise "error: param.h: No such file or directory":
in ~/freetz-1.0/toolchain/target/include/asm/param.h steht:
# include <param.h>
Diese Datei gibt es aber garnicht in ~/freetz-1.0/toolchain/target/include/ sondern nur im Unterordner 'asm'
"error: spaces.h: No such file or directory":
in ~/freetz-1.0/toolchain/target/include/asm/addrspace.h steht:
# include <spaces.h>
Auch diese Datei gibt es nicht in ~/freetz-1.0/toolchain/target/include/ sondern nur in diversen Unterordnern. Welche soll ich nun von Hand einbinden?
So kommen die Fehlermeldungen der anderen nicht gefundenen Header ebenfalls zustande.
Sind das Fehler in den Headern, habe ich fehlerhafte Dateien oder was falsch gemacht?
Für die Nutzung des JTAGs hatte ich mal ein für die FritzBox modifiziertes Hairy_WRT54-Tool. Das ist eine Sammlung von Skripten, in Perl glaube ich. Damit ging das ganz gut. Wichtig war es, erst das Skript zu starten und dann erst der FritzBox Strom zu geben. Der Flash-Chip ist wohl nur während eines Moments beim Booten erreichbar.
Wenn Du weitere Informationen brauchst, muss ich mal schauen, ob ich den Kram noch irgendwo vergraben hab'. Im Netz ist das aber auch zu finden.