FreeDOS: CDR i codzienne backupy

1 komentarz

Powoli zbliżam się do momentu kiedy stary Pentium 60 z FreeDOSem zostanie wysłany na emeryturę, a zastąpi go nowy Asus eeeBox B202 z gentoo linux. Martwiłem się kwestią przetransportowania danych ze staruszka, ale okazuje się, że autorzy FreeDOS stanęli na wysokości zadania i mimo iż system wygląda klasycznie (zabytkowo) to z obsługą nagrywarki CD nie ma większego problemu.

Ku pamięci więc tylko:

  1. Plik ASPI.SYS do pobrania z: aspi.sys
  2. Ładujemy $ devlkoad aspi.sys
  3. Plik obrazu płyty: $ mkisofs -v -o image.iso batch\ kantor\
  4. $ cdrecord -scanbus
  5. $ cdrecord dev=0,0,0 -tao driveropts=burnfree image.iso
i tyle w temacie :D

Przy okazji, jeśli gdzieś jeszcze taki zabytek stoi, a może sam jeszcze kiedyś postawię to, żeby nie klepać od nowa, codzienne backupy danych w całkiem zgrabnie uporządkowanej formie da się również w DOSie. backup.bat echo off rem BWW Backup Script v3 set exclude=*.exe cd %temp% echo | date /d | sed -e "s/.* //" | sed -e "s/\./-/g"> data.txt set /E date=sed data.txt -e "s/^.....//" set /E year=sed data.txt -e "s/-..-..$//" REM jesli nie ma katalogu na backupy to go zrobmy IF EXIST D:\BACKUP\%year%\keep goto cont mkdir D:\BACKUP\%year% touch D:\BACKUP\%year%\keep mkdir E:\BACKUP\%year% touch E:\BACKUP\%year%\keep set exclude= REM plik nie istnieje, czyli ok :cont set filename=%date%.zip :loop IF NOT EXIST D:\BACKUP\%year%\%filename% GOTO rest set exclude= set /E n=calc387 %n%+1 echo %date%-%n%.zip > data.txt set /E filename=sed data.txt -e 's/ *//g' GOTO loop :rest rm data.txt cdd c:\kantor\bww zip -r -0 D:\BACKUP\%year%\%filename% *.* -x %exclude% copy D:\BACKUP\%year%\%filename% e:\backup\%year%\*.* cd \ Skrypt uruchamiany z autoexec.bat zapisuje archiwum na partycji D:\ (i E:\ a co tam :D) w drzewie katalogów: D:\ BACKUP\ yyyy\ 2008\ 2009\ mm-dd.zip 01-02.zip 01-03.zip I kto mówił, że w DOSie się nie da? :-)

Który serial jest który?

Dodaj komentarz

Problem: stoi sobie komputer i ma wpięte dwa adaptery USB<>RS232C, do których dalej podpięte są dwa różne urządzenia. Urządzeń rozpoznać się nie da bo do nich się tylko rozmawia z zawrotną prędkością 300 bps. Ale rozmawia się do nich o czymś innym. Trzeba mieć pewność, że rozmawia się do właściwego, bo inaczej nie funguje.
Wodzu zgodnie z zasadami proponował podłączyć, zostawić i założyć, że zawsze porty po odpaleniu kompa pojawią się w tych samych miejscach. To dobre rozwiązanie bo nie trzeba nic robić, a jest duża szansa, że po prostu zadziała. Ale da się lepiej.

Za utworzenie pliku urządzenia odpowiada niejaki UDEV, który robi wiele rzeczy często zahaczających o czary, przez co wariaty się go boją, okazuje się, że chyba nie potrzebnie.
Wtyczki oczywiście zostają wpięte raz na stałe, więc o ile najbardziej chińskie z chińskich adapterów USB<>RS232 Bus 001 Device 034: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port same w sobie są również nie do rozpoznania, o tyle gniazdko gdzie są wetknięte już owszem. W moim przypadku ona wylądowały w dwóch pierwszych złączach podpiętego do eeeBoxa huba USB.

Cała magia sprowadza się do: udevadm info -ap /sys/class/tty/ttyUSB0 Udevadm info starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.1/1-2.1:1.0/ttyUSB0/tty/ttyUSB0': KERNEL=="ttyUSB0" SUBSYSTEM=="tty" DRIVER=="" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.1/1-2.1:1.0/ttyUSB0': KERNELS=="ttyUSB0" SUBSYSTEMS=="usb-serial" DRIVERS=="pl2303" ATTRS{port_number}=="0" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.1/1-2.1:1.0': KERNELS=="1-2.1:1.0" SUBSYSTEMS=="usb" DRIVERS=="pl2303" ATTRS{bInterfaceNumber}=="00" ATTRS{bAlternateSetting}==" 0" ATTRS{bNumEndpoints}=="03" ATTRS{bInterfaceClass}=="ff" ATTRS{bInterfaceSubClass}=="00" ATTRS{bInterfaceProtocol}=="00" ATTRS{modalias}=="usb:v067Bp2303d0300dc00dsc00dp00icFFisc00ip00" ATTRS{supports_autosuspend}=="1" (...) gdzie w pierwszej sekcji interesuje nas: KERNEL=="ttyUSB0", w drugiej nic, a w trzeciej KERNELS=="1-2.1:1.0" Powstaje więc regułka (gwiazdka zastępuje numer portu!!!): /etc/udev/rules.d/00-ttyUSB.rules KERNEL=="ttyUSB*", KERNELS=="1-2.1:1.0", NAME="ttyTABLICA" tak samo z drugim adapterem i ... no i po prostu działa: yogi ~ # cat /etc/udev/rules.d/00-ttyUSB.rules KERNEL=="ttyUSB*", KERNELS=="1-2.1:1.0", NAME="ttyTABLICA" KERNEL=="ttyUSB*", KERNELS=="1-2.2:1.0", NAME="ttyWYSWIETLACZ" yogi ~ # ls -l /dev/tty* | grep 23: crw-rw---- 1 root uucp 188, 0 07-15 23:49 /dev/ttyTABLICA crw-rw---- 1 root uucp 188, 1 07-15 23:50 /dev/ttyWYSWIETLACZ Okazuje się, że nie taki UDEV straszny jak sobie wariat wyobrażał, a przy okazji bonus bo nie trzeba nawet pamiętać co było wpięte jako ttyUSB0 bo widać po nazwie urządzenia.


Registered Linux User #161416
Become a Friend of GNOME
wariat @ gógle