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 16:10
       
      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 04:10
       
      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 06:10
       
      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 10:10
       
      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 10:10
       
      Ano racja :)
      • 6: CommentAuthor0xF
      • CommentTime26 Oct 2011 11:10
       
      Coś mi się zdaje, że "okienka" w ustach Mono to X Window System, a w uszach Dracona Windows.
      • 7:
         
        CommentAuthortdc
      • CommentTime26 Oct 2011 16:10
       
      he he;)
      • 8:
         
        CommentAuthorDracon
      • CommentTime28 Oct 2011 20:10
       

      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 06:10
       
      Nie;) Na SV Tobie zademonstruję dlaczego.
      • 10: CommentAuthormono
      • CommentTime21 Nov 2011 16:11
       
      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.