Door Maurice op 8 januari 2009 (aangepast op 14 januari 2009) populariteit:
Toen ik mijn Linksys WRT54g router geunbricked had, heb ik meteen van de gelegenheid gebruik gemaakt om een SD-kaartje in te bouwen, zonder gebruik te maken van een SD-kaart lezer, maar in plaats daarvan met een MiniSD-adapter. Heel netjes gelukt als ik het zelf mag zeggen, ook al ging het niet helemaal van een leien dakje...
!!! DISCLAIMER !!!
Bij het openen van je WRT54g vervalt je garantie, alles op eigen risico enz. De garantie van de mijne is reeds lang verlopen.
Op deze site vond ik de handleiding hoe ik een SD-kaart lezer in mijn WRT54g V2 in kon bouwen. In plaats van een SD-kaart lezer heb ik een MiniSD-kaart adapter gebruikt (MicroSD kan natuurlijk ook). Veel gemakkelijker in te bouwen door alleen een stukje van de behuizing uit te veilen.
Mijn router
Ik heb een WRT54g V2 versie (serienummer CDF5...) van de Linksys WRT54g router met DD-WRT v24 firmware. Alles wat hieronder geschreven is heeft betrekking op deze router, echter het kan ook (gewijzigd) toegepast worden op andere typen en merken routers en met andere firmware versies (OpenWRT, Tomato, etc).
MiniSD-kaart naar SD adapter
MiniSD-kaartje (ik had een 1 GB liggen)
Wat kabel, soldeerbout, tin, geen trillende handen.
Werkwijze
Voor de WRT54g V2 gewoon de aanwijzingen van de link hierboven volgen, voor andere versies van de WRT54g is dit of dit een goed startpunt.
Het RP3 punt bij de WRT54g V2 is lastig, maar is wel te doen. In het plaatje is het een beetje vaag aangegeven, maar D0 en CLK zit aan de rechterkant van de chip gesoldeerd, DI aan de linkerkant.
Let op: bij sommige WRT54g V2 versies zijn D0 en CLK omgewisseld ten opzichte van het plaatje in de link hierboven. Dit was bij mij het geval. Er zijn twee oplossingen voor:
1) Soldeer D0 en CLK andersom dan in de handleiding (dit heeft de voorkeur)
2) In de DD-WRT firmware (v24) de pin-bezetting handmatig opgeven: DI: 5, D0: 3, CLK: 4, CS: 7
De behuizing aanpassen is een makkie, ik heb er voor gekozen om de MiniSD adapter plat op de UTP-aansluitingen te leggen (lijmen en tapen) en een stukje uit de behuizing te vijlen (zie foto's hieronder). Let op dat je geen sluiting maakt. Zorg ook dat de adapter iets uitsteekt, dat is handig als je het MiniSD wilt verwijderen . Maak je geen zorgen om de ruimte voor de UTP-stekkers: plek zat.
Foto's
Hier wat zelfgemaakte foto's ter vergeleicking, leering ende vermaack.
In DD-WRT v24 kun je onder de Administration tab de MMC/SD Card support aanzetten. GPIO pins select zou je normaal op auto kunnen laten staan. Ik moest echter kiezen voor Manual met de waarden DI: 5, D0: 3, CLK: 4, CS: 7 in plaats van de voor de V2 gebruikelijke DI: 5, D0: 4, CLK: 3, CS: 7.
Even rebooten. Rebooten kan lang duren als de kaart nog niet geformateerd is, dus heb geduld.
Update 11 jan 2009: ik heb de pinnetjes omgesoldeerd, GPIO pins select staat nu gewoon op auto bij mij.
Update 14 jan 2009: omdat ik IO-errors kreeg in 'dmesg' bij het schrijven naar de SD-kaart heb ik pin 3 & 4 toch weer omgesoldeerd. Nergens meer last van, maar ik moet dus wel DI: 5, D0: 3, CLK: 4, CS: 7 gebruiken.
Tips Nog even een tijdsbesparende tip: wanneer je problemen hebt met een SD-kaartje, even op een Linuxbak een primaire partitie aanmaken met fdisk en deze formateren met ext2 (mkfs.ext2). Een partitie is dus nodig:
# fdisk /dev/mmcblk0 The number of cylinders for this disk is set to 4908.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): d 1
Selected partition 1
Command (m for help): n 1
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-4908, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-4908, default 4908):
Using default value 4908
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
# mkfs.ext2 /dev/mmcblk0p1 mke2fs 1.41.1 (01-Sep-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
124672 inodes, 498158 blocks
24907 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=511705088
16 block groups
32768 blocks per group, 32768 fragments per group
7792 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
En nu?
Ja, nu kun je er vanalles opzetten, logging naar toeschrijven, swap space aanmaken. Ik heb er eerlijk gezegd nog geen goede toepassing voor, maar leuk dat het kan .
Overigens kun je op deze pagina nog alternatieve mmc kernel modules vinden om mee te experimenteren. Nieuwsgierig naar de performance van de verschillende kernel modules? Hier zijn wat scripts om mee te testen. Let op dat er een foutje zit in mmcspeedtest.sh: 2x calc.awk vervangen door ./calc.awk. Sterker nog: het script werkt helemaal niet op de DD-WRT firmware, vanwege een andere versie van 'dd'. Hier zijn mijn aangepaste scripts te vinden die wel werken.
Nu de resultaten met de standaard kernel module uit de DD-WRT v24 firmware (voor 1 GB Sandisk):
./mmcspeedtest.sh
now will write 32MB and afterwards read it again...
write-speed: 65536+0 records in
65536+0 records out
188 KB/s
read-speed: 65536+0 records in
65536+0 records out
217 KB/s
Bij een 16MB SanDisk haalde ik 256KB/s (write) en 240 KB/s (read). Ik heb ook een SDHC MicroSD kaartje van 8 GB geprobeerd, maar die kreeg ik niet aan de gang.
Niet echt om over naar huis te schrijven, ik denk dat ik de optimized kernel modules eens ga proberen. Maar dan moet ik eerst even wat draadjes (D0 en CLK) omsolderen.
Meer links
Links die ik in de loop der tijd verzamel met betrekking tot de Linksys WRT54g router kun je hier vinden.
Was dit artikel nuttig voor je? Help mij dan door met behulp van de toolbar hieronder het artikel te tweeten, een eKudo te geven of toe te voegen aan Hyves, Facebook, Delicous, Digg of andere site. Bedankt!
Reacties op dit artikel Er zijn nog geen reacties geplaatst op dit artikel. Je kunt de eerste zijn.
Reactie toevoegen Een reactie toevoegen is simpel en registratie is niet nodig!
Je IP-adres wordt gelogd, maar niet gepubliceerd, alle reacties hebben een E-mail bevestiging nodig en worden stuk voor stuk gemodereerd. Misbruik wordt niet getolereerd. Naderhand wijzigen van je reactie is niet mogelijk