Diktafon pres USB

Thomas Shaddack hwnews@shaddack.mauriceward.com
Pondělí Červen 7 20:53:40 CEST 2004


On Mon, 7 Jun 2004, Wek wrote:

> PS. trocha flame do zacinajuceho tyzdna:
> Ja sa cudujem, ze sa na otazku p.Svobodu:
> >Nevite prosim o nejakych strankach, kde by to bylo popsano
> >a zda existuje nejaky software, ktery by mi zobrazil strukturu disku,
> >tj. co je zapsano v MBR, FAT atd., abych mohl vytvorit stejnou
> >strukturu ve flash pameti.
> sa este nevytasili linuxaci s narucou utilit typu "make-disk-image" a
> "display-image-as-fat-structure", samozrejme, vsetko free a open source...
> :-)

Rekl jste si o to.

# Znak # na zacatku radku oznacuje komentar.
# Rekneme ze mame 32M kartu, tedy 65536 sektoru po 512 bytes.

# nejdriv si vytvorime prazdny soubor o velikosti karty; tohle by slo
# preskocit kdybychom totex ucinili pomoci -C opsny v mkdosfs, ale pro
# nazornost to udelame explicitne
dd bs=512 count=65536 if=/dev/zero of=./card.img

# pak si v image souboru vytvorime filesystem:
# 2 sektory na cluster, 112 root entries (vic je pro tuhle aplikaci
# plytvani), filesystem na device bez partition table (-I)
# Jelikoz budeme mit malo velkych souboru, nebo v tomto pripade jeden
# soubor pres celou kartu, mohli bychom zkusit usetrit na velikosti
# FAT tim, ze pouzijeme vic sektoru na cluster, myslim ze jde az 32,
# ale pro priklad tam nechame defaultni 2:
mkdosfs -s 2 -r 112 -I ./card.img

# vytvorime si v pracovnim adresari mountpoint pro loop device
mkdir ./l

# mountneme si image
mount -o loop ./card.img ./l

# podivame se na available space
df ./l
# vysledek bude 32636 kilobyte

# vytvorime v image soubor typu .wav, samplerate 8000 Hz, 8-bit unsigned
# (hlavicka ma 44 byte, potrebujeme tedy ulozit 33419220 byte dat
# (32636*1024-44)):
# Jelikoz cist to byte po byte (dd bs=1 count=33419220) chvili trva,
# a prvocislo to nejspis nebude, rozlozime si to cislo na soucinitele:
factor 33419220
# vysledek bude 2*2*3*5*120647 neboli 60*120647:
dd bs=60 count=120647 if=/dev/zero \
 | sox -t raw -b -u -r 8000 - ./l/file.wav

# odmontujeme image
umount ./l

# a mame hotovy image.
# Do nej se podivame nejakym hexeditorem, napr. viewerem Midnight
# Commandera, hledame "data" chunk kterym nam konci RIFF hlavicka WAVu:
mc -v ./card.img
# stiskneme F4, najdeme si retezec "data", a vidime, ze za nimi je jeste
# longint odpovidajici delce dat, tedy 4 byte. Za nim uz zacinaji opravdova
# data, coz je na offsetu 0x0002102c, neboli dekadicky 135212.


....Voila, mame vysledek. Image karty je vytvoren a muzeme jej pouzit, a
navic jeste zname offset odkud muzeme zapisovat.

Vsechno free a open source. ;)



Jednou veci si nejsem jist, jestli je nebo neni na karte potreba MBR
sektor. Pokud ne, je tenhle postup platny. Pokud ano, je potreba jeste
predtim udelat na image partition pomoci fdisk, ale to se musi udelat
interaktivne. Nebo noninteraktivne, viz "man sfdisk", ale to jsem jeste
nedelal.

Da se to overit tim, ze se karta naformatuje napr. ve fotoaparatu, pak se
da do ctecky a podiva se na ni pomoci
fdisk -l /dev/sdXX
kde /dev/sdXX je device na kterem je ctecka pripojena na danem pocitaci.




Další informace o konferenci Hw-list