Da ja USB-Root auf dem W900V offiziell nicht läuft hatte ich ja immer eine kleine Anpassung der rc.usbroot laufen die die nötigen Module geladen hat damit der Stick erfolgreich erkannt werden konnte. Nachzulesen ist das hier:
http://www.ip-phone-forum.de/showpost.php?p=1163738&postcount=23
Seit einigen Firmware Versionen funktionierte das ganze nicht mehr weil der tiatm Treiber beim laden einen Kernel Fehler verursachte:
Ich bin nie dahinter gekommen warum er das tut.
Heute habe ich meinem W900V dann mal das serielle Kabel verpasst und hatte somit die Möglichkeit das ganze manuell nachzuspielen.
Ich habe mir ein Image OHNE rc.S erstellt und dieses geflasht.
Durch die fehlende rc.S konnte ich direkt in die serielle Konsole springen und alle Module usw manuell laden.
Mit Erfolg.
Der tiatm braucht beim W900V schon /proc/sys/urlader/environment, ansonsten kommt der Kernel Fehler.
Ich habe den Code also etwas angepasst und USB-Root läuft nun wieder einwandfrei
Als Anhang noch einen patch gegen die aktuelle rc.usbroot.
Villeicht findet die Sache ja nun Ihren Weg direkt ins freetz.
http://www.ip-phone-forum.de/showpost.php?p=1163738&postcount=23
Seit einigen Firmware Versionen funktionierte das ganze nicht mehr weil der tiatm Treiber beim laden einen Kernel Fehler verursachte:
Code:
Unhandled kernel unaligned access in arch/mips/kernel/unaligned.c::emulate_load_store_insn, line 478[#1]:
Cpu 0
$ 0 : 00000000 00000076 fffffffe fffffffe
$ 4 : 942a2260 95df85c0 00000000 0000000d
$ 8 : 00000076 00000000 00000001 00000000
$12 : 00000000 9429f0f4 00200200 00000000
$16 : 940b0420 00070000 c0060000 c0060000
$20 : 942e4c40 941c0000 95e07dd8 95e07d40
$24 : 00000000 9405cc14
$28 : 95e04000 95e07ca0 c0040000 c004b3f0
Hi : 00019ccc
Lo : ddd50000
epc : c004b3f8 dslhal_api_dslStartup+0x3a8/0x6e0 [tiatm] Tainted: P
ra : c004b3f0 dslhal_api_dslStartup+0x3a0/0x6e0 [tiatm]
Status: 1000ce03 KERNEL EXL IE
Cause : 00800010
BadVA : 00000006
PrId : 00018448
Modules linked in: tiatm Piglet
Process busybox (pid: 116, threadinfo=95e04000, task=95df9bf0)
Stack : 95f10000 95f2ae00 0000000f 95f18000 80010774 8001077c 8001078c 8001079c
80010870 80010900 80010918 80010920 8001093c 80010958 80000008 8001096c
00000000 80010a00 80010a20 80010a30 80010a54 00000000 00000000 80010a74
80010a78 80010a8c 00000000 00000000 80010a90 80010aa4 00000000 80010ab8
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
...
Call Trace:
[<c0050000>] dslhal_support_gatherAdsl2Messages+0x1dc/0x724 [tiatm]
[<c0047c40>] tn7dsl_init+0x38/0x248 [tiatm]
[<c0045fe4>] tn7atm_proc_private+0x0/0x16c [tiatm]
[<c0005398>] tn7atm_detect+0x398/0x9fc [tiatm]
[<c0005330>] tn7atm_detect+0x330/0x9fc [tiatm]
[<c0005000>] tn7atm_detect+0x0/0x9fc [tiatm]
[<940419ec>] sys_init_module+0x214/0x3a4
[<9406239c>] filp_close+0xc4/0xe0
[<9400dce0>] stack_done+0x20/0x3c
[<9400dce0>] stack_done+0x20/0x3c
Code: 00003021 3c13c006 ae62fb18 <8c420008> 10400004 00000000 8c440008 14800005 00000000
Ich bin nie dahinter gekommen warum er das tut.
Heute habe ich meinem W900V dann mal das serielle Kabel verpasst und hatte somit die Möglichkeit das ganze manuell nachzuspielen.
Ich habe mir ein Image OHNE rc.S erstellt und dieses geflasht.
Durch die fehlende rc.S konnte ich direkt in die serielle Konsole springen und alle Module usw manuell laden.
Mit Erfolg.
Der tiatm braucht beim W900V schon /proc/sys/urlader/environment, ansonsten kommt der Kernel Fehler.
Ich habe den Code also etwas angepasst und USB-Root läuft nun wieder einwandfrei
Code:
modprobe Piglet piglet_bitfile=$piglet_bitfile $piglet_load_params
if [ $HWRevision = 102 ]; then
echo "*********** W900V Hack **********"
mount -o nosuid -t tmpfs dev /dev
/sbin/makedevs -d /etc/device.table /
mount -a
echo firmware_info `/etc/version` > /proc/sys/urlader/environment
modprobe tiatm firmware_load_file=/lib/modules/microvoip-dsl.bin annex=B
modprobe isdn_fbox_fon4 dect_hw=2 dect_on=1
capi_codec=`ls -R /lib/modules/ | grep 'lib.*capi_codec'`
capi_codec=${capi_codec%:}/capi_codec.ko
insmod ${capi_codec}
echo "********************************"
fi
if modprobe usbcore; then
mount -t usbfs usbfs /proc/bus/usb
modprobe usbahcicore AHCI_BaseAddress=0xbe008000 AHCI_RegisterOffset=0x4000 AHCI_IntLine=1
Als Anhang noch einen patch gegen die aktuelle rc.usbroot.
Villeicht findet die Sache ja nun Ihren Weg direkt ins freetz.