Toon posts:

fdisk probleempje (flash pcmcia kaartje)

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb problemen met een sram (flash) pcmcia kaartje te beschrijven, de kaart is 2mb groot en is dus een lineair sram kaartje, werkend op 3.3/5v

Linux (redhat 6.2) ziet de kaart en wijst /dev/mem0c0b toe. Het probleem treedt pas op als ik fdisk opstart en vervolgens een partitie aanmaak, zodra ik deze wegschrijf met 'w' vormt zich het volgende probleem:

The partition table has been altered!

Calling loctl() to re-read partition table.
Re-read table failed with error 22: Invalid argument.
Reboot your system to ensure the partition table is updated.

WARNING: If you have created or modified any DOS 6.x partitions, please see the fdisk manual page for additional information.
Syncing disks.
[root@laptop /root]#

Ik heb geen flauw idee wat ik hieraan kan doen en wat eventueel het probleem is.
Als ik hierna de kaart opnieuw benader met fdisk maar nu de partition table print, commando 'p', dan zie ik het volgende staan:

Disk /dev/mem0c0b: 1 heads, 4096 sectors, 1 cylinders
Units = cylinders of 4096 * 512 bytes

Device Boot Start End Blocks Id System
/dev/mem0c0b1 1 1 2047+ 83 Linux
Partition 1 has different physical/logical endings:
phys=(0, 0, 0) logical=(0, 0, 4096)
Partition 1 does not end on cylinder boundary:
phys=(0, 0, 0) should be (0, 0, 4096)

Als iemand hier raadt mee weet hoor ik het graag, ik heb inmiddels alles wat ik kon bedenken al geprobeerd.

Verwijderd

Waarom een partitietabel? dat neemt toch alleen maar extra ruimte in op zo'n kaart? Ik neem tenminste aan dat je die 2 mb niet nogeens wil gaan verdelen in meerde delen.

Kun je de kaart niet gewoon gebruiken met 'mke2fs /dev/mem0c0b' ofzoiets?

Verwijderd

Topicstarter
Dit zal je wellicht vaker gehoord hebben en onderhand de strot uitkomen maar ik ben dus nog vrij nieuw met linux.

Het hele idee is dat ik een bootable sram kaartje moet maken waarnaar ik een *.img file moet schrijven, hoe en waarmee ik dat doe is dus nog volkomen onbekend voor mij.

Verwijderd

Topicstarter
Ik ben inmiddels weer een aantal stapjes verder, maar het lukt me op dit moment weer niet om sram.img naar de flash kaart te schrijven met het commando dd if=/dev/mem0c0b of=sram.img , dan krijg ik het volgende probleem:

dd: /dev/mem0c0b: Input/output error
4096+0 records in
4096+0 records out

Verwijderd

Het commando 'dd if=/dev/mem0c0b of=sram.img' gaat andersom dan jij wil:
if=input file, daar leest ie uit
of=output file, daar schrijft ie het heen

Hij leest dus de kaart uit en schrijft wat ie leest naar het bestand sram.img. Als je geen optie 'bs' (blocksize) meegeeft leest en schrijft dd met blokken van 512bytes. Na 4069 blocken van een halve KB (2 MB dus) is hij aan het einde van de kaart en geeft ie een i/o fout.
Eigenlijk lijkt hij dus precies te doen wat ie doen moet :)

Ik hoop dat je nog een backup hebt van dat sram.img bestand, wat dat is inmiddels overschreven met de inhoud van de (lege) flashkaart.
gebruik dan eens het commando 'dd if=sram.img of=/dev/mem0c0b' dan zou hij het wel moeten doen.

[edit]
kromme zin rechtgetweaked :)

Verwijderd

Topicstarter
Het heeft er nu alle schijn van dat het gelukt is, er zijn iig geen errors meer te bekennen.

Wat ik nu dus gedaan heb, naar jouw voorbeeld, mke2fs /dev/mem0c0b en daarna dd if=sram.img of=/dev/mem0c0b hierop krijg ik de volgende output:
4096+0 records in
4096+0 records out

laatste vraag, hoe check ik of die kaart uberhaupt beschreven is en of hij bootable is.

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 16-08 16:08

deadinspace

The what goes where now?

Op zondag 27 januari 2002 01:36 schreef Perplexer het volgende:
Wat ik nu dus gedaan heb, naar jouw voorbeeld, mke2fs /dev/mem0c0b en daarna dd if=sram.img of=/dev/mem0c0b
Dat mke2fs is niet nodig :)
met mke2fs /dev/mem0c0b maak je een ext2 filesystem aan op je flash kaart, en met dd if=sram.img of=/dev/mem0c0b gooi je de image op je flash kaart, waarbij je elk eventueel filesystem overschrijft.
hierop krijg ik de volgende output:
4096+0 records in
4096+0 records out
Dan lijkt het erop dat die image succesvol naar je flashkaart is geschreven.
laatste vraag, hoe check ik of die kaart uberhaupt beschreven is
dd if=/dev/mem0c0b of=blaat.img
diff blaat.img sram.img

Als diff niks zegt zijn ze hetzelfde en is het blijkbaar helemaal goedgegaan, en als diff zegt dat ze verschillen is het blijkbaar niet helemaal goedgegaan.
en of hij bootable is.
Door hem te booten :P

Verwijderd

Topicstarter
Helaas krijg ik pas volgende week de apparatuur binnen om te kijken of alles het naar behoren doet, dus controleren of ik van de kaart kan booten is er nog niet bij.

Alles verloopt naar behoren uitgezonderd van 1 probleem, welke is; als ik dd if=/dev/mem0c0b of=blaat.img doe krijg ik dus weer die input/output error:

dd: /dev/mem0c0b: Input/output error
4096+0 records in
4096+0 records out

Het vreemde is wel dat hij een bestand identiek aan die van sram.img wegschrijft.

Door te checken met diff kom ik er achter dat de beide bestanden wel degelijk verschillen.

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 16-08 16:08

deadinspace

The what goes where now?

Op zondag 27 januari 2002 14:48 schreef Perplexer het volgende:
Alles verloopt naar behoren uitgezonderd van 1 probleem, welke is; als ik dd if=/dev/mem0c0b of=blaat.img doe krijg ik dus weer die input/output error:

dd: /dev/mem0c0b: Input/output error
4096+0 records in
4096+0 records out
Mja, dd leest gewoon telkens wat van de flash kaart, en schrijft dit naar blaat.img, enz, enz. Maar op een gegeven moment is de kaart 'op' (dwz dd probeert voorbij het einde van de kaart te lezen) en dat genereert die i/o error.
Het vreemde is wel dat hij een bestand identiek aan die van sram.img wegschrijft.

Door te checken met diff kom ik er achter dat de beide bestanden wel degelijk verschillen.
Hoe groot zijn beide files (in bytes) ? (hint: ls -l)

Verwijderd

Topicstarter
sram.img = 2097152
blaat.img = 2097152

identiek dus, het lijkt dus allemaal wel aardig te kloppen.

maar nu lees ik in de readme, dat het bestand sram.img gekopieerd moet worden naar de sram kaart er staat niets over dd, dit lijkt me eerlijk gezegd sterk, kan er uberhaupt van een sram.img bestand geboot worden ?

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 16-08 16:08

deadinspace

The what goes where now?

Als ik bijvoorbeeld de rescue.img van Debian met dd op een flop pleur, dan kan ik daarvan booten.
Dit komt omdat als je van flop boot, wordt simpelweg de allereerste sector van de flop uitgevoerd alsof het een programma was. Als dus vooraan in rescue.img correcte code staat die ervoor zorgt dat de zooi verder opstart, dan werkt dat (je kunt in principe zelfs gewoon een kernelimage naar flop dd'en).
Ik ga er vanuit dat er van je sram kaart op ongeveer dezelfde manier geboot kan worden; in dat geval is het puur afhankelijk van de inhoud van je sram.img of je ervan kunt booten :)

Verder is de grootte van je sram.img *exact* 2 MB (2*1024*1024), dus ik vermoed dat het op een andere manier (met fdisken en filesystem aanmaken) niet gaat passen.

  • igmar
  • Registratie: April 2000
  • Laatst online: 29-06 18:56

igmar

ISO20022

Op maandag 28 januari 2002 01:12 schreef Perplexer het volgende:
sram.img = 2097152
blaat.img = 2097152
md5sum is heilig met dit soort zaken :)

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 16-08 16:08

deadinspace

The what goes where now?

Op maandag 28 januari 2002 08:10 schreef igmar het volgende:
md5sum is heilig met dit soort zaken :)
Als diff zegt dat ze verschillend zijn, zal md5sum dat ook wel vinden, hè ;)

Verwijderd

Topicstarter
Dank allen, het werkt inmiddels als 1 trein.
Pagina: 1