Linux 15.028 Themen, 107.048 Beiträge

gcc für Broadcom BCM5354r3

Synthetic_codes / 10 Antworten / Flachansicht Nickles

Moin.

Also erstmal zur vorgeschichte:

Ich habe bereits in einem anderen Thread Probleme mit meinem Huawei E220 Modem beschrieben. Neuerliche hinweise haben mich dazu geführt, dass diese Probleme wohl mit meinem Mainboard zusammenhängen. Daraufhin habe ich mich(was ich schon länger vorhatte) nach einem UMTS-Router umgeschaut. Dabei war einer meiner wichtigsten interessen dass es ein linux-basiertes gerät sein sollte.

Ich bin nun bei der SurfStation von O2 gelandet, die einen router mit USB Host schnittstelle darstellt. Aufgrund dieser Tatsache ging ich davon aus, dass es sich wohl um ein linux basiertes gerät handeln müsse, einfach weil das die billigste und einfachste variante ist, die ich mir so vorstellen kann.

Meine annahme war richtig. ich kann mich per Telnet an der box anmelden, und habe dann ein linux image, das mir vollen root-zugriff gewährt.

Ich hatte eigentlich auf ein ARM9 basiertes gerät gehofft, aber dem war leider nicht so.

laut /proc/cpuinfo handelt es sich um eine Broadcom CPU:


# cat /proc/cpuinfo
system type : Broadcom BCM5354 chip rev 3
processor : 0
cpu model : BCM3302 V2.9
BogoMIPS : 237.56
wait instruction : no
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : no
hardware watchpoint : no
VCED exceptions : not available
VCEI exceptions : not available
unaligned_instructions : 2
dcache hits : 0
dcache misses : 0
icache hits : 0
icache misses : 0
instructions : 0


ein /proc/version ergibt mir folgendes:


# cat /proc/version
Linux version 2.4.20 (x127667@old_server.com) (gcc version 3.2.3 with Broadcom m
odifications) #2 Â■ 7È┬ 8 17:03:53 CST 2008


So... nun fängt es mit den Problemen an: Der hersteller des gerätes ist nirgendwo angegeben. Weder am Gerät selbst, noch im Handbuch oder auf der Verpackung. Will heissen, dass sich da mal wieder jemand um die GPL geschickt gedrückt hat.

Ich bräuchte nun ein kernel modul für den vfat treiber, welches ich selbst kompilieren müsste.(und noch ein paar andere module)

dazu fehlt mir jedoch der nötige Compiler. Kann mir da jemand weiterhelfen?
Weiss unter umständen jemand welcher hersteller sich hinter der "Surf Station" von O2 verbirgt?

Ich meine ich bin mir atm nicht mal sicher dass man das gerät in D verwenden darf, da es keinerlei kennzeichnungen hat, nicht mal das CE logo oder ein FCC logo.

Muss ein hersteller sein Produkt nicht als solches kenntlich machen?
was meint ihr dazu?

'); DROP TABLE users;--
bei Antwort benachrichtigen
KarstenW Synthetic_codes „gcc für Broadcom BCM5354r3“
Optionen

Das Problem wird sein das dies ein spezielle gcc Version ist , welche Binärcode für diese spezielle CPU übersetzt. Wenn du in deinem Rechner einen AMD oder Intel Prozessor (oder Sparc , Power PC...) hast, dann kannst du den erzeugten Binärcode nicht einfach auf den Router kopieren , weil das eine andere Prozessoarchitektur ist.

Du müßtest deshalb crosscompilieren, also auf deinem PC Binärcode für eine andere CPU (Prozessorarchitektur) erzeugen. Da bin ich aber total überfragt wie man das auf einem PC macht.
Und ich schätze mal das auf diesem Router nicht genug Speicher zur Verfügung steht , dieses Kernelmodul zu übersetzen.

Wieso willst du den vfat Treiber selbst übersetzen ?
Die Kernelconfiguration steht in der Regel in der Datei /proc/config.gz.
Du könnst ja mal reinschauen und selbst nachsehen ob der Treiber im Linuxkernel schon aktiviert ist. Die Treiber können auch monolitisch in der Datei /boot/vmlinuz?? sein und müssen nicht unbedingt als Modul übersetzt werden.


Beispiel von einem 2.6.26er Linuxkernel (AMD64 Architektur):

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y <-----VFAT Treiber ist aktiviert und als monolitischer Treiber in der Kerneldatei /boot/vmlinuz???
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-15"
CONFIG_NTFS_FS=y
# CONFIG_NTFS_DEBUG is not set
# CONFIG_NTFS_RW is not set

Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen