atarionline.pl filesystemy atr i ataridos - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1: CommentAuthormono
    • CommentTime22 Oct 2011
     
    Proudly presents dwa narzędzia dla Linuxa/Unixa pozwalające na pracę z obrazami dyskietek kompatybilnymi z Atari DOS.
    Są to dwa filesystemy zaimplementowane z użyciem biblioteki FUSE.

    1. ATRFS
    Pozwala na zamontowanie obrazu dysku ATR (w wersji APE lub SIO2PC) jako ciągły plik w filesystemie.
    $ atrfs exemplum.atr mountpoint

    Rozpoznaje to oczywiście rodzaj atra, a za pomocą opcji można go zmusić do traktowania sektorów 1..3 dysku DD jako 256b (zazwyczaj samo się zorientuje że ma taki obraz).

    2. ATARIDOSFS
    Pozwala na zamontowanie pliku z obrazem dysku (np. partycji dysku Atari XL/XE w przyszłości, lub pliku udostępnianego przez ATRFS) z systemem plików kompatybilnym z Atari DOS:
    - Atari DOS 1,
    - Atari DOS 2,
    - Atari DOS 2.5,
    - My DOS.
    $ ataridosfs image mountpoint

    Tutaj też detekcja następuje samoczynnie, ale parametrem -o dos można wymusić konkretny rodzaj DOSa (zazwyczaj niepotrzebne).
    Po zamontowaniu w mountpoint pojawia się struktura katalogów tak, jak ją widać na Atari. Można kopiować pliki, tworzyć katalogi, usuwać, zmieniać nazwy, zabezpieczać pliki/katalogi, przesuwać aż do chwili kiedy skończy się miejsce na obrazie.

    Ponieważ to wersja prealfabeta to należy uważać z wielodostępem, bo prawdopodobnie skaszani dysk.

    Instalacja
    Należy dociągnąć pakiety:
    - libfuse-dev
    - fuse-utils
    np za pomocą:
    $ sudo apt-get install libfuse-dev fuse-utils

    oraz wykonać:
    $ mkdir atari8fs-0.3
    $ cd atari8fs-0.3
    $ wget http ://mono.i-demo.pl/fuse/atari8fs-0.3.tar.gz
    $ tar zxf atari8fs-0.3.tar.gz
    $ make clean all install

    * Po http nie ma być spacji - przypadłość enginu forumowego :/
    Paczka dostępna tutaj.

    Enjoy i send bugs&requests please.

    P.S. Jak tego użyć z konkretnym atrem, żeby mieć pliki w katalogu widzianym przez system:
    $ mkdir images ataridisk
    $ atrfs exemplum.atr images
    $ ataridosfs images/exemplum ataridisk

    i w ataridisk są pliczki.
    Koniec pracy:
    $ fusermount -u ataridisk
    $ fusermount -u images
    $ rmdir ataridisk images


    UWAGA miłośnicy okienek
    Pliki można sobie kopiować dowolnym okienkowym managerem. Wcale NIE TRZEBA używać konsoli i cp, mv, truncate, rm, mkdir, rmdir, stat.
    • 2: CommentAuthormono
    • CommentTime26 Oct 2011
     
    Zrobiłem patch na kernel linuxowy w wersji 2.6.32, który implementuje support dla partycji KMK/IDEA.
    Oto jak się to zachowuje po włożeniu karty CF z 4ma partycjami SDX:
    $ tail -F /var/log/syslog
    Oct 26 03:49:05 ox kernel: [ 123.766072] pcmcia_socket pcmcia_socket0: pccard: PCMCIA card inserted into slot 0
    Oct 26 03:49:05 ox kernel: [ 123.766088] pcmcia_socket pcmcia_socket0: cs: memory probe 0x0c0000-0x0fffff: excluding 0xc0000-0xd3fff 0xe0000-0xfffff
    Oct 26 03:49:05 ox kernel: [ 123.771870] pcmcia_socket pcmcia_socket0: cs: memory probe 0x60000000-0x60ffffff: excluding 0x60000000-0x60ffffff
    Oct 26 03:49:05 ox kernel: [ 123.771906] pcmcia_socket pcmcia_socket0: cs: memory probe 0xa0000000-0xa0ffffff: excluding 0xa0000000-0xa0ffffff
    Oct 26 03:49:05 ox kernel: [ 123.771940] pcmcia_socket pcmcia_socket0: cs: memory probe 0xc0000000-0xc7ffffff: excluding 0xc0000000-0xc7ffffff
    Oct 26 03:49:05 ox kernel: [ 123.771978] pcmcia_socket pcmcia_socket0: cs: memory probe 0xe4100000-0xe43fffff: excluding 0xe4100000-0xe415ffff
    Oct 26 03:49:05 ox kernel: [ 123.783511] pcmcia 0.0: pcmcia: registering new device pcmcia0.0
    Oct 26 03:49:05 ox kernel: [ 123.824014] scsi7 : pata_pcmcia
    Oct 26 03:49:05 ox kernel: [ 123.824087] ata7: PATA max PIO0 cmd 0x6110 ctl 0x611e irq 18
    Oct 26 03:49:06 ox kernel: [ 123.976913] ata7.00: CFA: SanDisk SDCFX-2048, HDX 4.03, max PIO6
    Oct 26 03:49:06 ox kernel: [ 123.976922] ata7.00: 4001760 sectors, multi 0: LBA
    Oct 26 03:49:06 ox kernel: [ 123.977790] ata7.00: configured for PIO0
    Oct 26 03:49:06 ox kernel: [ 123.978056] scsi 7:0:0:0: Direct-Access ATA SanDisk SDCFX-20 HDX PQ: 0 ANSI: 5
    Oct 26 03:49:06 ox kernel: [ 123.978444] sd 7:0:0:0: Attached scsi generic sg3 type 0
    Oct 26 03:49:06 ox kernel: [ 123.978613] sd 7:0:0:0: [sdb] 4001760 512-byte logical blocks: (2.04 GB/1.90 GiB)
    Oct 26 03:49:06 ox kernel: [ 123.978728] sd 7:0:0:0: [sdb] Write Protect is off
    Oct 26 03:49:06 ox kernel: [ 123.978735] sd 7:0:0:0: [sdb] Mode Sense: 00 3a 00 00
    Oct 26 03:49:06 ox kernel: [ 123.978798] sd 7:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
    Oct 26 03:49:06 ox kernel: [ 123.979216] sdb:Discovering Atari KMK/IDEA partition table OK
    Oct 26 03:49:06 ox kernel: [ 123.992429] Hard disk size is 4001760
    Oct 26 03:49:06 ox kernel: [ 123.992438] Partition 0 (pbeg 0, plen 65535, pclsize $80, pindex 0, pstats $80) in slot 1 sdb1 added
    Oct 26 03:49:06 ox kernel: [ 123.992450] Partition 1 (pbeg 65535, plen 65535, pclsize $80, pindex 0, pstats $80) in slot 2 sdb2 added
    Oct 26 03:49:06 ox kernel: [ 123.992460] Partition 2 (pbeg 131070, plen 65535, pclsize $80, pindex 0, pstats $80) in slot 3 sdb3 added
    Oct 26 03:49:06 ox kernel: [ 123.992470] Partition 3 (pbeg 196605, plen 65535, pclsize $80, pindex 0, pstats $80) in slot 4 sdb4 added
    Oct 26 03:49:06 ox kernel: [ 123.992480] Partition 4 (pbeg 0, plen 0, pclsize $00, pindex 0, pstats $00) in slot 5 passed
    Oct 26 03:49:06 ox kernel: [ 123.992488] Partition 5 (pbeg 0, plen 0, pclsize $00, pindex 0, pstats $00) in slot 6 passed
    Oct 26 03:49:06 ox kernel: [ 123.992496] Partition 6 (pbeg 0, plen 0, pclsize $00, pindex 0, pstats $00) in slot 7 passed
    Oct 26 03:49:06 ox kernel: [ 123.992503] Partition 7 (pbeg 0, plen 0, pclsize $00, pindex 0, pstats $00) in slot 8 passed
    Oct 26 03:49:06 ox kernel: [ 123.992511] Partition 8 (pbeg 0, plen 0, pclsize $00, pindex 0, pstats $00) in slot 9 passed
    Oct 26 03:49:06 ox kernel: [ 123.992518] Partition 9 (pbeg 0, plen 0, pclsize $00, pindex 0, pstats $00) in slot 10 passed
    Oct 26 03:49:06 ox kernel: [ 123.992526] Partition 10 (pbeg 0, plen 0, pclsize $00, pindex 0, pstats $00) in slot 11 passed
    Oct 26 03:49:06 ox kernel: [ 123.992534] Partition 11 (pbeg 0, plen 0, pclsize $00, pindex 0, pstats $00) in slot 12 passed
    Oct 26 03:49:06 ox kernel: [ 123.992542] Partition 12 (pbeg 0, plen 0, pclsize $00, pindex 0, pstats $00) in slot 13 passed
    Oct 26 03:49:06 ox kernel: [ 123.992550] Partition 13 (pbeg 0, plen 0, pclsize $00, pindex 0, pstats $00) in slot 14 passed
    Oct 26 03:49:06 ox kernel: [ 123.992558] Partition 14 (pbeg 0, plen 0, pclsize $00, pindex 0, pstats $00) in slot 15 passed
    Oct 26 03:49:06 ox kernel: [ 123.992565] Partition 15 (pbeg 0, plen 0, pclsize $00, pindex 0, pstats $00) in slot 16 passed

    Oct 26 03:49:06 ox kernel: [ 123.994343] sd 7:0:0:0: [sdb] Attached SCSI removable disk

    $ ls -ltra /dev/
    razem 1
    drwxr-xr-x 2 root root 120 2011-10-26 03:49 bsg
    drwxr-xr-x 16 root root 4180 2011-10-26 03:49 .
    crw-rw---- 1 root disk 21, 3 2011-10-26 03:49 sg3
    drwxr-xr-x 2 root root 3600 2011-10-26 03:49 char
    brw-rw---- 1 root disk 8, 20 2011-10-26 03:49 sdb4
    brw-rw---- 1 root disk 8, 17 2011-10-26 03:49 sdb1
    brw-rw---- 1 root disk 8, 19 2011-10-26 03:49 sdb3
    brw-rw---- 1 root disk 8, 18 2011-10-26 03:49 sdb2

    drwxr-xr-x 2 root root 800 2011-10-26 03:49 block
    brw-rw---- 1 root disk 8, 16 2011-10-26 03:49 sdb
    drwxr-xr-x 6 root root 140 2011-10-26 03:49 .udev
    crw------- 1 root root 5, 1 2011-10-26 03:49 console
    crw------- 1 root root 4, 1 2011-10-26 03:49 tty1
    crw-rw-rw- 1 root tty 5, 2 2011-10-26 03:50 ptmx

    $ xxd -g 1 /dev/sdb1 | head -32
    0000000: 00 01 00 04 e0 07 4c 40 04 12 00 ff ff 54 9b 10 ......L@.....T..
    0000010: 02 00 d6 3b a3 03 48 44 44 20 20 20 20 20 01 01 ...;..HDD ..
    0000020: 21 00 02 fe 00 01 23 34 00 00 00 00 00 00 00 00 !.....#4........
    0000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    0000040: a2 01 a9 00 95 9e 95 96 bd 21 04 95 92 95 9a ca .........!......
    0000050: 10 f0 cd 08 03 f0 0b 8d 08 03 a5 93 8d 09 03 20 ...............
    0000060: e5 04 a9 00 85 90 18 65 92 85 98 a9 30 85 91 65 .......e....0..e
    0000070: 93 85 99 20 f0 04 85 a4 20 f0 04 25 a4 c9 ff d0 ... .... ..%....
    0000080: 3a a9 cd 8d e2 02 a9 05 8d e3 02 20 f0 04 85 a0 :.......... ....
    0000090: 20 f0 04 85 a1 05 a0 f0 1c 20 f0 04 38 e5 a0 48 ........ ..8..H
    00000a0: 08 20 f0 04 28 e5 a1 85 a3 68 85 a2 20 69 05 20 . ..(....h.. i.
    00000b0: b8 04 4c 81 04 6c e0 02 6c e2 02 a9 ce a2 05 8d ..L..l..l.......
    00000c0: 44 03 8e 45 03 a9 0f 8d 48 03 a9 09 8d 42 03 a2 D..E....H....B..
    00000d0: 00 20 56 e4 4c d4 04 8d 04 03 8e 05 03 ad 0a 03 . V.L...........
    00000e0: 0d 0b 03 f0 d6 a0 40 8c 03 03 20 59 e4 30 cc 60 ......@... Y.0.`
    00000f0: a9 00 85 a3 85 a2 a5 9e 05 9f f0 15 a0 00 b1 9c ................
    0000100: 48 e6 9c d0 02 e6 9d a5 9e d0 02 c6 9f c6 9e 68 H..............h
    0000110: 60 20 a7 05 a5 9a c5 a2 a5 9b e5 a3 90 1b a5 98 ` ..............
    0000120: a6 99 20 d7 04 a2 01 b5 98 95 9c b5 9a 95 9e ca .. .............
    0000130: 10 f5 a0 00 b1 9c 4c 00 05 a5 a0 a6 a1 20 d7 04 ......L...... ..
    0000140: a5 a0 18 6d 08 03 85 a0 a5 a1 6d 09 03 85 a1 38 ...m......m....8
    0000150: a5 a2 ed 08 03 85 a2 a5 a3 ed 09 03 85 a3 4c 11 ..............L.
    0000160: 05 a5 a2 d0 02 c6 a3 c6 a2 20 f6 04 a0 00 91 a0 ......... ......
    0000170: e6 a0 d0 02 e6 a1 a5 a2 05 a3 d0 e5 60 a2 01 bd ............`...
    0000180: 28 04 9d 0a 03 b5 90 95 94 b5 92 95 96 ca 10 ef (...............
    0000190: a5 90 a6 91 20 d7 04 a0 01 b1 94 99 28 04 88 10 .... .......(...
    00001a0: f8 20 b7 05 20 b7 05 a5 96 05 97 f0 d0 a0 01 b1 . .. ...........
    00001b0: 94 99 0a 03 88 10 f8 a5 94 18 69 02 85 94 90 02 ..........i.....
    00001c0: e6 95 a5 96 38 e9 02 85 96 b0 02 c6 97 60 45 72 ....8........`Er
    00001d0: 72 6f e9 3a 20 6e 6f 20 44 4f 53 9b 00 00 00 00 ro.: no DOS.....
    00001e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00001f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    $ xxd -g 1 /dev/sdb2 | head -32
    0000000: 00 01 00 04 e0 07 4c 40 04 12 00 ff ff 7c 00 10 ......L@.....|..
    0000010: 02 00 9f ff 14 00 4d 45 44 49 41 20 20 20 01 01 ......MEDIA ..
    0000020: 21 00 02 fe 00 01 0a 85 00 00 00 00 00 00 00 00 !...............
    0000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    0000040: a2 01 a9 00 95 9e 95 96 bd 21 04 95 92 95 9a ca .........!......
    0000050: 10 f0 cd 08 03 f0 0b 8d 08 03 a5 93 8d 09 03 20 ...............
    0000060: e5 04 a9 00 85 90 18 65 92 85 98 a9 30 85 91 65 .......e....0..e
    0000070: 93 85 99 20 f0 04 85 a4 20 f0 04 25 a4 c9 ff d0 ... .... ..%....
    0000080: 3a a9 cd 8d e2 02 a9 05 8d e3 02 20 f0 04 85 a0 :.......... ....
    0000090: 20 f0 04 85 a1 05 a0 f0 1c 20 f0 04 38 e5 a0 48 ........ ..8..H
    00000a0: 08 20 f0 04 28 e5 a1 85 a3 68 85 a2 20 69 05 20 . ..(....h.. i.
    00000b0: b8 04 4c 81 04 6c e0 02 6c e2 02 a9 ce a2 05 8d ..L..l..l.......
    00000c0: 44 03 8e 45 03 a9 0f 8d 48 03 a9 09 8d 42 03 a2 D..E....H....B..
    00000d0: 00 20 56 e4 4c d4 04 8d 04 03 8e 05 03 ad 0a 03 . V.L...........
    00000e0: 0d 0b 03 f0 d6 a0 40 8c 03 03 20 59 e4 30 cc 60 ......@... Y.0.`
    00000f0: a9 00 85 a3 85 a2 a5 9e 05 9f f0 15 a0 00 b1 9c ................
    0000100: 48 e6 9c d0 02 e6 9d a5 9e d0 02 c6 9f c6 9e 68 H..............h
    0000110: 60 20 a7 05 a5 9a c5 a2 a5 9b e5 a3 90 1b a5 98 ` ..............
    0000120: a6 99 20 d7 04 a2 01 b5 98 95 9c b5 9a 95 9e ca .. .............
    0000130: 10 f5 a0 00 b1 9c 4c 00 05 a5 a0 a6 a1 20 d7 04 ......L...... ..
    0000140: a5 a0 18 6d 08 03 85 a0 a5 a1 6d 09 03 85 a1 38 ...m......m....8
    0000150: a5 a2 ed 08 03 85 a2 a5 a3 ed 09 03 85 a3 4c 11 ..............L.
    0000160: 05 a5 a2 d0 02 c6 a3 c6 a2 20 f6 04 a0 00 91 a0 ......... ......
    0000170: e6 a0 d0 02 e6 a1 a5 a2 05 a3 d0 e5 60 a2 01 bd ............`...
    0000180: 28 04 9d 0a 03 b5 90 95 94 b5 92 95 96 ca 10 ef (...............
    0000190: a5 90 a6 91 20 d7 04 a0 01 b1 94 99 28 04 88 10 .... .......(...
    00001a0: f8 20 b7 05 20 b7 05 a5 96 05 97 f0 d0 a0 01 b1 . .. ...........
    00001b0: 94 99 0a 03 88 10 f8 a5 94 18 69 02 85 94 90 02 ..........i.....
    00001c0: e6 95 a5 96 38 e9 02 85 96 b0 02 c6 97 60 45 72 ....8........`Er
    00001d0: 72 6f 72 3a 20 6e 6f 20 44 4f 53 9b 00 00 00 00 ror: no DOS.....
    00001e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00001f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    Partycje są sformatowane z 512-bajtowymi sektorami i widać, że rozpoznawane są 4 istniejące. Nie mam niestety żadnej partycji mydłosowej, żeby sprawdzić jak ataridosfs współpracuje z urządzeniem /dev/sdbN.
    Procedura instalacji:
    $ apt-get install linux-source-2.6.32
    $ su -
    # cd /usr/src/
    # tar jxf linux-source-2.6.32.tar.bz2
    # wget http ://mono.i-demo.pl/fuse/linux-source-2.6.32-atari8fs.diff
    # patch -p0 linux-source-2.6.32-atari8fs.diff
    # cd linux-source-2.6.32
    # make menuconfig

    W tym miejscu należy wejść do menu "File systems->Partition types" i zaznaczyć opcję "Atari XL/XE partition table support".
    Po wyjściu i zapisaniu konfiguracji dalej:
    # make-kpkg clean
    # make-kpkg --initrd --revision=atari8 kernel_image kernel_headers modules_image
    # dpkg -i linux-headers-2.6.32.46+drm33.20_atari8_amd64.deb
    # dpkg -i linux-image-2.6.32.46+drm33.20_atari8_amd64.deb
    # update-initramfs -c -k 2.6.32.46+drm33.20
    # update-grub

    Potem reboot i po starcie można się cieszyć partycjami KMK/IDEA widocznymi pod linuxem.
    Suffiks ".46+drm33.20_*_amd64" zależy oczywiście od konkretnej wersji kernela - ponieważ ściągaliśmy go z repozytorium (Ubuntu 10.04 Lucid). Można łatę nałożyć na standardowy kernel i też powinna działać - patch dodaje pliki atari8.* i modyfikuje pliki check.c, Makefile i Kconfig w podkatalogu fs/partition/.
    Procedurę instalacji robiłem wg:
    - ->link<- oraz
    - ->link<-
    bo okazało się, że nie był tworzony plik initrd.img*.

    Zapraszam do testowania i zgłaszania życzeń i zażaleń.
    • 3:
       
      CommentAuthortdc
    • CommentTime26 Oct 2011
     
    Wow ! Mono jak mrówka ;)
    Tej łaty na jajko już nie trzeba było robić :D :D

    Ja obecnie linuxa używam jedynie sporadycznie więc, nie zrobię na razie testów.
    • 4:
       
      CommentAuthorDracon
    • CommentTime26 Oct 2011
     
    UWAGA miłośnicy okienek
    Pliki można sobie kopiować dowolnym okienkowym managerem. Wcale NIE TRZEBA używać konsoli i cp, mv, truncate, rm, mkdir, rmdir, stat.

    Podejrzewam, ze takich jest tu zdecydowana wiekszosc. :)
    Dlatego warto byloby pomyslec o jakims wygodnych instalerze, itp., w koncu im wiecej osob to wykorzysta, tym milej dla autora. :)
    • 5: CommentAuthormono
    • CommentTime26 Oct 2011
     
    Ano racja :)
    • 6: CommentAuthor0xF
    • CommentTime26 Oct 2011
     
    Coś mi się zdaje, że "okienka" w ustach Mono to X Window System, a w uszach Dracona Windows.
    • 7:
       
      CommentAuthortdc
    • CommentTime26 Oct 2011
     
    he he;)
    • 8:
       
      CommentAuthorDracon
    • CommentTime28 Oct 2011
     

    tdc:

    Ja obecnie linuxa używam jedynie sporadycznie (...)

    Czy to z powodów które zostały podane np. tutaj ? ;) :D
    • 9:
       
      CommentAuthortdc
    • CommentTime29 Oct 2011
     
    Nie;) Na SV Tobie zademonstruję dlaczego.
    • 10: CommentAuthormono
    • CommentTime21 Nov 2011
     
    Zrobiłem support dla partycji APT (SIDE?).
    Muszę jeszcze znaleźć sposób na przekazanie informacji o emulacji wielkości sektora (128B/256B), bo obecnie widać "dziury".
    Wyczyszczony został też log rozpoznanych partycji - aktualnie partycje zgłaszają się tak:
    Nov 21 16:28:48 ox kernel: [12390.628340] scsi 7:0:0:0: Direct-Access     ATA      FLASH CARD       2009 PQ: 0 ANSI: 5
    Nov 21 16:28:48 ox kernel: [12390.628780] sd 7:0:0:0: Attached scsi generic sg2 type 0
    Nov 21 16:28:48 ox kernel: [12390.628936] sd 7:0:0:0: [sdb] 3931200 512-byte logical blocks: (2.01 GB/1.87 GiB)
    Nov 21 16:28:48 ox kernel: [12390.629702] sd 7:0:0:0: [sdb] Write Protect is off
    Nov 21 16:28:48 ox kernel: [12390.629710] sd 7:0:0:0: [sdb] Mode Sense: 00 3a 00 00
    Nov 21 16:28:48 ox kernel: [12390.629771] sd 7:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
    Nov 21 16:28:48 ox kernel: [12390.630183] sdb: [PMBR] APT< sdb1 sdb2 sdb3 sdb4 sdb16 sdb17 sdb18 sdb19 >
    Nov 21 16:28:48 ox kernel: [12390.646723] sd 7:0:0:0: [sdb] Attached SCSI removable disk

    lub
    Nov 21 16:28:48 ox kernel: [12390.630183]  sdb: KMK/IDEA< sdb1 sdb2 sdb3 sdb4 >

    Patch do ściągnięcia z poprzedniego miejsca.
    Sposób instalacji bez zmian.