dot - блог

За този блог

бТк aDSL

Публикации в този блог

dot

След няколкото опита да получа информация през UPnP реших отново да се пробвам със SNMP-то. Ако си спомняте, проблема с него беше в големия размер на софтуера и тоталната липса на място в модемите. Заветните 1965428 байта с компилиран SNMP са доста трудно постижими.

Затова опитах друг вариант. С намаляване на информцията която може да се дърпне през SNMP-то. От общо 7 обработвани MIB-а, по принципа на пробите и грешките достигнах до два - АТМ layer и IP layer. Резулатата беше намаляване на размера на изпълнимия файл едва с 30к. Колкото толкова.

Успях да постигна Combined Image file size под 196дрън-дрън и флашнах фърмуера. Разочарованието обаче беше тотално. :shake_puter: При опит да се пусне, демона се троши с грешка, че не може да открие точка към библиотеките на UcLibc. Което казано с по-прости думи, динамичните библиотеките в неткомския имидж трябва да се подменят с прекомпилирани или с такива които са малко по-пълни. Т.е. още необходими байтове в и без това изстискан до крайност имидж.

Е няма повече накъде! И без това тези 411к ми изядоха всички идеи, а да се хващам да търся още и още. Няма да стане! Или платка с повече памет или каквото и да е наблюдение през телнет или UPnP/html.

Стига за днес. Вземам си федорката под мишница и приключвам. Тази седмица попрмених уебконфигуратора почти наполовина, добавих меню за директно извеждане на PPPUsername и PPPPasword и си намери една грешчица...която ще трябва да отстраня. Ако някой е превел част от ленгуич пак-а ще съм му безкрайно благодарен да ми го изпрати.

А и май са ми вдигнали скоростта на домашния aDSL. :wow: Отивам да проверя.

dot

HTTP+XML=SOAP

Няколко дена се занимавам с други работи, а и никой не коментира флаша... Или не смеете да го заредите или наистина няма проблеми. ;)

Та покрай всичко друго, пробвах възможностите на модемите за UPNP и открих някой нещица които ме заитригуваха. Ще вземе да се окаже, че може да се наблюдава състоянието на модема през SOAP. Сега се опитвам да формулирам заявката и ми е нужна малко помощ.

Ако някой е запознат със SOAP-а да ми пусне ЛС или тук в блога за да си поговорим по въпроса. А дотогава продължавам с префасонирането на уебконфигуратора и добавянето на някой екстри като страничка която да показва PPPUserName и PPPPassword... :rolleyes:

dot

Алфа имидж

Прикаченото е работоспособен имидж за флашване. За база е използван последния NetComm-ски. Добавил съм само някой команди към шела. Ако има желаещи да пробват ( при мен 2 часа изкара без проблеми )

В имиджа има:

  • Неткомски кърнъл.
  • Прекомпилиран busybox с някой нови команди ( sysctl, ls, chmod, nc a.k.a netcat, cp, top... )
  • Неткомски едноезиков cfm ( Firmware Version 3.63u )
  • ADSL Driver Version A2pB023k.d20h
  • Леко променена файлова система.

Тъй като това е алфа все пак, не съм извадил ненужния usb драйвер, но и това ще стане. И без това ми трябва място. Потествайте и ако всичко е ок започвам малко по малко да го привеждам във вид подходяш за бткайски модем.

Хм! Щях да забравя. Това е kernel и root file system. Няма cfe и честно казано сега като пиша това се замислих дали може да се флашне през уеб конфигуратора. Но през конзола с кабел - няма никакъв проблем. ;) Ако някой не знае как но е готов да пробва - на лични ще му бъде показано как и какво да направи, че подобни инструкции не са за публично представяне :nono:

Иначе днес вече почти окончателно се отказах от тулчейна на Siemens - хардуера който използват е с 4М флаш и 16М рам. Почти е невъзможно да се подкара на RTA1320 - всъщност подкарва се но липсват NAT ALG, което не е кой знае колко фатално, но фаталното е, че компилирания кърнъл не се погажда с по-новите ethernet и adsl драйвери. T.e. много езиковата поддръжка може да върви само със стари драйвери. Това ще го решавам после - ако тази конфигурация не покаже стабилност и т.н.

И btw! Внимателно със sysctl cool.gif

Изненанда! Не ми позволи да кача файл без разширение. Затова прикачения файл е текстов по разширение но в действителност не е така.

dot

По-интересните съобщения са при инициализацията на Ethernet драйвера.

CFE version 1.0.37-0.8 for BCM96338 (32bit,SP,BE)

Build Date: Wed Nov  2 17:08:01 HKT 2005 ([email="guang@FedoraC3.foxconn.com"]guang@FedoraC3.foxconn.com[/email])

Copyright (C) 2000,2001,2002,2003 Broadcom Corporation.


Initializing Arena.

Initializing Devices.

100 MB Full-Duplex (auto-neg)

CPU type 0x29010: 240MHz


Total memory used by CFE:  0x80401000 - 0x80522B70 (1186672)

Initialized Data:		  0x8041AE70 - 0x8041C510 (5792)

BSS Area:				  0x8041C510 - 0x80420B70 (18016)

Local Heap:				0x80420B70 - 0x80520B70 (1048576)

Stack Area:				0x80520B70 - 0x80522B70 (8192)

Text (code) segment:	   0x80401000 - 0x8041AE64 (106084)

Boot area (physical):	  0x00523000 - 0x00563000

Relocation Factor:		 I:00000000 - D:00000000


Board IP address				: 192.168.1.1:ffffff00  

Host IP address				 : 192.168.1.2  

Gateway IP address			  :   

Run from flash/host (f/h)	   : h  

Default host run file name	  : vmlinux  

Default host flash file name	: bcm963xx_fs_kernel  

Boot delay (0-9 seconds)		: 5  

Board Id Name				   : T60L943  

Psi size in KB				  : 24

Number of MAC Addresses (1-32)  : 11  

Base MAC Address				: 00:19:7e:81:00:41  

Ethernet PHY Type			   : Internal

Memory size in MB			   : 8


*** Press any key to stop auto run (5 seconds) ***

Auto run second count down: 5

0x80010000/1675398 0x801a9086/3962 Entry at 0x80196018

Closing network.

Starting program at 0x80196018


Linux version 2.6.8.1 (compiled by dot) (gcc version 3.4.2) #40 Wed Apr 30 11:32:26 EEST 2008

man/device id c2/2249

FLASH_BASE bfc00000,blk 0

Total Flash size: 2048K with 35 sectors NVRAM @0 block

Scratch pad is not used for this flash part.

T60L943 prom init

CPU revision is: 00029010

Determined physical RAM map:

memory: 007a0000 @ 00000000 (usable)

On node 0 totalpages: 1952

  DMA zone: 1952 pages, LIFO batch:1

  Normal zone: 0 pages, LIFO batch:1

  HighMem zone: 0 pages, LIFO batch:1

Built 1 zonelists

Kernel command line: root=/dev/nfs nfsroot=192.168.1.2:/opt/bcm963xx_router/targets/BTCADSL/fs ip=192.168.1.1:192.168.1.2::255.255.255.0::eth0:off rw

brcm mips: enabling icache and dcache...

Primary instruction cache 16kB, physically tagged, 2-way, linesize 16 bytes.

Primary data cache 8kB 2-way, linesize 16 bytes.

PID hash table entries: 32 (order 5: 256 bytes)

Using 120.000 MHz high precision timer.

Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)

Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)

Memory: 5924k/7808k available (1351k kernel code, 1864k reserved, 204k data, 80k init, 0k highmem)

Calibrating delay loop... 238.38 BogoMIPS

Mount-cache hash table entries: 512 (order: 0, 4096 bytes)

Checking for 'wait' instruction...  unavailable.

<dot patch> Entering sock_init()...done!

<dot patch> Entering init_workqueries...done!

<dot patch> Entering do_initcalls...<6>NET: Registered protocol family 16

Can't analyze prologue code at 801605cc

1.parse options inodes 743 block 743

PPP generic driver version 2.4.2

NET: Registered protocol family 24

brcmboard: brcm_board_init entry

bcm963xx_serial driver v2.0

NET: Registered protocol family 2

IP: routing cache hash table of 512 buckets, 4Kbytes

TCP: Hash tables configured (established 512 bind 1024)

NET: Registered protocol family 1

NET: Registered protocol family 17

NET: Registered protocol family 8

NET: Registered protocol family 20

External Switch Detected !!

Broadcom BCM6338A2 Ethernet Network Device v0.3 Feb 12 2007 18:48:36

Config Ethernet Switch Through SPI Slave Select 1

BCM63xx_ENET: error on Ethernet Switch setup

BCM63xx_ENET: device initialization error!

Uninitialised timer!

This is just a warning.  Your computer is OK

function=0x00000000, data=0x0

Call Trace: [<8003d4fc>]  [<8003d540>]  [<800bbbf4>]  [<800e88e4>]  [<800e69e4>]  [<80035ff4>]  [<80035ee0>]  [<80050000>]  [<801a46a4>]  [<80160000>] ...


<dot patch> init module...Waiting 2 seconds to eth0 become up..

IP-Config: Device `eth0' not found.

done!

Looking up port of RPC 100003/2 on 192.168.1.2

RPC: sendmsg returned error 128

portmap: RPC call returned error 128

Root-NFS: Unable to get nfsd port number from server, using default

Looking up port of RPC 100005/1 on 192.168.1.2

RPC: sendmsg returned error 128

portmap: RPC call returned error 128

Root-NFS: Unable to get mountd port number from server, using default

RPC: sendmsg returned error 128

mount: RPC call returned error 128

Root-NFS: Server returned error -128 while mounting /opt/bcm963xx_router/targets/BTCADSL/fs

VFS: Unable to mount root fs via NFS, trying floppy.

Kernel panic: VFS: Unable to mount root fs on unknown-block(2,0)

<0>Rebooting in 180 seconds..

dot

SNMP

Няма памет. snmp-то иска почти 420к флаш и не знам още колко рам. Няма толкова!

Опитвах, рязах, чистих файлове и успях да събера в заветните 1965824 байта сорс със snmp но не тръгва. Търси нещо което затрих а сложа ли го него минавам границата. Не съм се отказал между другото - само споделям. И ще търся малко информация.

Има RTA1320_16M която е с 4М флаш и 16М рам. Ако някой е виждал информация за подобни модеми ще съм му благодарен ако я сподели. Видимо от сорсовете и дефинициите няма същественна разлика. Но нещо драйверите от последния фърмуер не искат да тръгват върху RTA1320

Другото което забелязах, има разлика в драйвера за модемите с 4-те порта. Зареден просто зависва и ... нищо. Но идват 6 дена в които ще продължавам да изследвам дебрите на броудкомските модеми. :rolleyes:

п.с. Убих още една платка...! Както е тръгнало май ще трябва още да търся...

dot

Това е разпакетиран англйиски ленгпак. Ако на някой му се занимава може да преведе част от него. Само моля не затривайте и не променяйте индексите ( числата в началото на всеки ред ) и не променяйте html таговете.

dot

След като си убих платката, реших, че все пак трябва да има начин да набутам фърмуер за 4М в 2М флаш. Още повече, че сорсовете които докопах имаха профили и за RTA1025W_16 което е уаърлес модемите на бТк и бяха с многоезичен cfm. Само че единственния начин да стане това е да се прекопмилира с друг board id и евентуално ако се наложи да се свие размера на фърмуера, но това го разбрах постфактум.

Учудващо се компилира без никакъв проблем. Предните сорсове се копилираха с малко клизми, но пък иначе нямаше да се наложи да ровя като прасе в тикви в сорса. В което няма нищо лошо де - просто така с образователна цел. ;) . Но след компилацията CFE-то отказа да го запише с изненадващата грешка "Опитвате се да инсталирате фърмуер с размер 1999310 байта. Максималния размер е..." е не помня числото но беше с около 33к по-малко. А защо помня другото?

Естественно нямах намерение да премахвам от функционалноста му и затова реших да видя дали не може да се разкара нещо от файловата система. webs директорията ми се стори много подходяща за целта. Дори не повярвах, че имах такъв късмет. След сортиране по големина на файловете, веднага се появи нещичко излишно. Имаше езикови пакети за VoIP, Wireless и учудващо - ленгпак за испански. Е вече имах два и трети не ми трябваше затова смело shift+del и испанския пое по каналния ред. Разчистих и разни пакове с VoIP и wl в имената и смело ребилднах имиджда. Резулата беше.... :shock11: . Размера на имиджда си беше отново 1999310. Проверка в fs папката на имиджа - испанския си е там, там са си и всички други wl и VoIP. Изтривам ги оттам ( идеята беше, че скрипта не ги трие ) и отново билд и отново :eek: . Явно нямаше да стане по лесния начин след като може и по трудния.

30 минутно четене на скриптове и открих ключа за палтката. В сорсовете има една папка /userapps/broadcom/html чието съдържание се копира в /webs по време на билдването на файловата система. После скрипта трябва да затрие част от файловете които не са необходими според зададения профил. Което разбира се не означава, че не оставаха излишни. Които аз собственноръчно затрих ( за този профил/платка нямаше да ми трябват посмъртно ). Този път имиджа се сведе до нормалните си размери. И моментално беше флашнат... Обаче не се зареди драйвера за етернета. Бърз преглед! Едно съобщение не трябваше да е там, а именно "board id is not set". Тук вече ми трябваше повечко време и малък пач на boardparams.c. Отново билдване и отново флашване. Успешно! Веднага се сетих за единственната ми хуйвейска платка ( CPE Model МТ882-BCM-R ) която е със същия чипсет както и RTA1320 но с друго ID. На нея не успях да заредя предния си опит ( онова с nfs root-fs и kernel зареждан от tftp ) именно защото драйвера на етернета не се зареждаще поради "board id is not set". :doh:

Ребуут на модема и след секунди кърнъла изгърмя...Това ми се случва за втори път между другото. Първия беше заради неинициализацията на етернет драйвера при опитите за nfs root-fs, а този път....нямах идея. След няколко бутвания и лог на съобщенията, от които най-не ми харесваше, че adslctl не можеше да задели памет, реших че няма да мине без поорязване. Например драйвер за usb - платката ми няма usb порт, макар, че драйвера се зареждаше без проблем. Както и да е - разкарах го. Между другото сега е момента да спомена, че фирмените броудкомски драйвери се зареждат като loadable kernel modules а не build-in. Което е мнооооого удобно. Например ако ни трябва само функционалност за мрежа с TCP/IP стек, зареждаме си само него драйвер и осталата памет си я използваме за ... светване на светодиодите в подходяща последователност.

Нов имидж и ново набутване. Този път всичко мина без проблем. Ухилих се, поразгледах уебконфигуратора и толкова. adsl драйвера беше стар - версията на нетком и дайналинк от миналата година, както и cfm-а. Но езика на интерфейса се сменя без проблем. Естественно следващите стъпки ще са:

  1. Опит за подмяна на cfm-а с новия. Разочароващото може да е, че новия няма да многоезичен, но само пробата ще покаже.
  2. Опит за подмяна на драйверите за ethernet и adsl. Тук си мисля, че няма да имам проблем.
  3. Опит да заредя/компилирам имидж за хувейските модеми. :rolleyes:
  4. Да разбера защо не ми тръгва snmp-то на RTA1320.
  5. Да направя най-после нещо по превода на уебконфигуратора. Вчера най-после успях да разбия индексацията на езиковите пакети. cool.gif

И май ще започна с последното, че трябва да напиша малко код. Нещо не ме блазни да броя и събирам в hex editor-a. А и без това федора бокса ми не е при мен и няма да ми позволят да го стоваря на пода в хола точно по празниците.... ;)

dot

Ядосах се!

Днес успешно успях да си убия едната платка!!! :angry22:

И защо? Защото реших, че мога да събера флаш за 4М в платка с 2М... Ама на! Пусто любопитство. Добре, че беше RTA1320, а не RTA1025W_16, че те са ми много кът така да се каже. Само дето още съм бесен!

Цял ден се боря с ленгуич паците. По-скоро с индексирането на стринговете от cfm-a. Имам някакъв напредък но... Цялата работа тръгна от това, че за да проверя една моя мисъл от ривърс инжиниринга ми трябваше ленгпак различен от английския. Малко търсене и намерих фърмуер за същото MCU, разпакетирах си rootfs-а и ми хрумна да го флашна този имидж. Резултата обаче не беше в моя полза. Но пък сега ще имам оправдание да си седна на задните части и да си направя най-накрая JTAG кабела -нещо което отлагам от месец.

И най-накрая трябва да реша кой фърмуер да модвам в края на края! Че се лутам между три варианта. Трябва да седна тези дни да напиша с какво разполагам ... е тъй де, какви са възможностите и да пусна "допитване". После започвам да търся алфа тестери. Кандидати? :magnifier:

Добавка провокирана от коментара на Topper: Имам няколко напълно работещи "излишни" борда за алфите. Нямам кабели, но пък един кабел може да се събере за около 6 до 8 лв. и малко сръчност.