Downloads
Overzichten van artikelen en software
Handigheidjes
Gerelateerde sites
dd-wrt  draadloos  how-to's  linksys  modden  projecten  wrt54g
MiniSD-card mod voor Linksys WRT54g V2 router
Printer vriendelijke versieDownload artikel als PDF
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).

Ter vergelijking, dit geeft mijn router terug:

# strings /dev/mtdblock/0 | grep ^board
boardtype=0x0101
boardnum=42
boardrev=0x10
boardflags=0x0188
boardflags2=0
boardtype
boardtype
boardflags2=0
boardrev=%d
boardflags=%d
boardflags2=%d
boardflags

# strings /dev/mtdblock/0 | grep ^gpio
gpio2=adm_eecs
gpio3=adm_eesk
gpio5=adm_eedi
gpio6=adm_rc
gpioXXXXXXXX
gpio%d


Benodigdheden

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.


Klik hier voor het complete album en eventuele sub-albums


Configuratie

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.

sdcard_support.png


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

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

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.
Copyright © 1999-2009 Maurice de Bijl. Dit artikel is gepubliceerd op 2009-01-08, laatste update was op 2009-01-14 in dd-wrt  draadloos  how-to's  linksys  modden  projecten  wrt54g

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!

Printer vriendelijke versieDownload artikel als PDF

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

Naam:
E-mail adres:

E-mail wordt alleen gebruikt voor bevestiging en zal niet gepubliceerd worden.

Reactie:

Reacties a.u.b. in taal van artikel (Nederlands).
HTML is niet toegestaan, BB-code wel.

 Populaire tags 
Klik om dicht te klappen
 Zoek trefwoord 
Klik om dicht te klappen
 Volg ons 
Klik om dicht te klappen
 Spreuk van de Dag 
Klik om dicht te klappen
 Webwinkel 
Klik om dicht te klappen
 Getwitter 
Klik om dicht te klappen
Copyright ©
1999-2009 Maurice de Bijl
2220 page requests
Gegenereerd op 10-03-2010 07:09:46 CET in 197.95 msec op srv010106.webreus.nl rev# 1:23M