-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
205 lines (162 loc) · 9.22 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
Author: Karsten Scheibler
Homepage: http://unusedino.de/cw/
eMail: [email protected]
=======================
[1] GENERAL INFORMATION
=======================
cw is (yet another) package for the Catweasel controller, look under [5] for
other existing packages. This package is especially for accessing the floppy
drives connected to Catweasel. Currently the MK3, MK4 and MK4+ controller
cards are supported. cw consists of a kernel driver and a companion user
space program (cwtool). The kernel driver should work with Linux 2.4 and 2.6.
Look at the homepage of the manufacturer http://www.jschoenfeld.com/ for more
details about the controller features. Please read also the man page for
some hardware oddities you should know about, before complaining that
something does not work as expected.
============================
[2] SHORT BUILD INSTRUCTIONS
============================
To build cw a simple 'make' should be enough. Remember that you need the
source of your running kernel in order to compile the driver module. cw was
tested on x86 under different distributions with different Linux kernel
versions (to name a few: 2.4.26, 2.4.32, 2.6.11.2 and 2.6.14.2 all directly
taken from http://www.kernel.org/), it also succesfully compiled on
Knoppix 4.0.2, SuSE 10.0, 10.1, 10.2, 10.3 and 11.1. There were also
reports, that cw runs on PowerPC platforms under Linux without problems.
You may build cwtool with dietlibc, just set and export the environment
variable DIET to the location of your 'diet' binary and run 'make'. Dietlibc
is a libc that is optimized for small size, look at
http://www.fefe.de/dietlibc/ for more.
===================================
[3] SHORT INSTALLATION INSTRUCTIONS
===================================
NOTE: The file conf/cwtoolrc.default contains the configuration for all
currently supported disk formats. This file is also compiled into
cwtool (comments are stripped away, you may see the contents with
'cwtool -D'). You may also place a customized version of this file
to /etc/cwtoolrc or $HOME/.cwtoolrc, so cwtool will load it on every
start up. But currently there is no description how such a file has
to look like, because the syntax may change in future versions. For
easy changes such as a different number of sectors per track you
should use conf/cwtoolrc.default as a template. But be prepared that
you may have to do your changes again with new versions of cwtool.
NOTE: If you use devfs you have to determine yourself how to add the device
nodes permanently. I do not plan to add support for it, because
devfs is now obsolete and will be removed in future versions of the
kernel. Starting with cw-0.11 basic support for udev was introduced,
so a 'make install' should add the needed things. But as every
distribution handles udev a little bit different it may not work on
your installation (see also step 2b below)
NOTE: You need to be root to do the things described below.
You may use cw without calling 'make install' if you do the following steps
manually:
1a) load the module
# insmod module/cw.o (Linux 2.4)
# insmod module/cw.ko (Linux 2.6)
1b) make sure the module was loaded correctly
# lsmod
# dmesg | tail
The first command prints out a list of all loaded kernel modules, the
second prints out kernel messages, the last lines should contain
messages from cw.
2a) create the device nodes (up to 4 controllers are supported, every
controller may have up to 2 floppy drives)
# mknod /dev/cw0raw0 c 120 31
# mknod /dev/cw0raw1 c 120 63
# mknod /dev/cw1raw0 c 120 95
# mknod /dev/cw1raw1 c 120 127
# mknod /dev/cw2raw0 c 120 159
# mknod /dev/cw2raw1 c 120 191
# mknod /dev/cw3raw0 c 120 223
# mknod /dev/cw3raw1 c 120 255
2b) If you use udev, add according entries to /etc/udev/static_devices.txt
or create device nodes manually in /lib/udev/devices or do whatever your
distribution needs to be done to make the device nodes permanent,
otherwise they will disappear with the next reboot. If you have no luck
with udev, just create a startscript with the above mknod lines and
execute it after udev was started up.
3a) run cwtool to read a disk (in this case: read an Amiga 3.5" DD disk
from the first drive on the first controller and write it to image.adf)
# bin/cwtool -R -v amiga_dd /dev/cw0raw0 image.adf
3b) Writing a disk is similar (in this case: write image.d64 to a C1541
5.25" disk in the second drive of the first controller)
# bin/cwtool -W -v c1541 image.d64 /dev/cw0raw1
3c) Look at the man page of cwtool, to get an overview what other things
are possible
# man doc/cwtool.1
If you use 'make install' to install cw then /etc/modules.conf (Linux 2.4)
or /etc/modprobe.conf (Linux 2.6) will be modified to allow automatic module
loading. Per default it uses char major number 120. If this major number is
already in use (look at /proc/devices) you need to choose a different number.
Use the command 'make install MAJOR=xx', where xx is a free char major number
on your system. The following parameters are also possible, if these
parameters are not specified more or less useful default values are used.
BIN_DIR - directory in which cwtool is installed
MAN_DIR - the man page will be copied to $MAN_DIR/man1
MODULE_DIR - directory in which the kernel driver module is
installed
MODULE_NAME - the name of the module (you need to choose a different
name than 'cw' if you also use the catweasel package
listed in [6])
MODULES_CONF - full path of the modules.conf or modprobe.conf file
or alternatively the modprobe.d directory if no
modprobe.conf exists
UDEV_STATIC_DEVICES - this file contains static entries for device nodes,
if it exists entries suitable for cw are added
(seems only to exist on SuSE 10.0)
NOTE: You may use 'make upgrade' if you want to upgrade from an older
version of cw, but you need to specify those parameters that differ
from the default values. Upgrading just means overwriting cwtool, the
kernel module and the man page with the current versions and creating
device nodes if necessary. Be aware that this has not been extensively
tested. If possible uninstall your old version of cw and install the
new one.
NOTE: You may use 'make uninstall' to uninstall cw, the parameters of
the last 'make install' call are saved and are used for uninstalling,
but after a 'make clean' these saved parameters will be lost.
=================
[4] CONTRIBUTIONS
=================
In the contrib directory you will find a simple GUI for cwtool written by
David Bentham (aka PegXlin DEV). If you want to use it, consult the according
README in contrib/cwtoolgui. If you have enhancements for this GUI or other
useful additions, please contact me under the mail address listed at the
start of this README.
If you want to use the kernel driver of cw for your own programs please have
a look at the src/cwio directory.
====================
[5] RELATED PROJECTS
====================
There are at least 6 other Linux drivers for the Catweasel controller:
catweasel (*) - http://llg.cubic.org/cw/, written by Dirk Jagdmann. A
Linux driver for SID, Joysticks and Amiga keyboard. If you also want
to use this package together with cw, remember to set MODULE_NAME to
a different name, because catweasel uses the same name for the driver
module (see the installation instructions in [3]).
cwfloppy (*) - http://www.soundtracker.org/raw/cwfloppy/, written by
Michael Krause. A Linux driver for accessing the floppies on a
Catweasel controller. This driver exports block devices, so you are
able to mount Amiga disks under Linux. Currently it supports Amiga
and MSDOS disks (and C1541 with a patch written by me). To support
more formats i found it more useful to use another method to export
data to user space, thats why i started my own driver. Instead of a
block device cw uses a char device and passes the raw Catweasel data
to the calling program, so all format routines do not reside in the
kernel driver anymore.
hardsid (*) - http://hardsid.sourceforge.net/, written by Jarno Paananen
and Simon White. A Linux driver for the Hardsidcards and the
SID-Chips on Catweasel MK3 and MK4.
hardsid-catweasel (*) - http://www.bel.fi/~alankila/blog/2005/12/30/HardSID-Catweasel%200.01.html,
written by Antti Lankila. This driver only contains support for
Catweasel MK4 cards and is a rework of the hardsid driver.
cw2dmk - http://www.tim-mann.org/catweasel.html, written by Tim Mann.
A Linux driver (other platforms are also supported) for accessing the
floppies on a Catweasel Controller, especially TRS80 related formats
are supported. This package does not use a kernel driver to access
the Catweasel controller, but you should avoid using this program
when a kernel driver from another package is loaded.
hardsec_cw - http://webpages.charter.net/thecomputercollection/hardsec_cw.tar.gz
adapted version of cw2dmk by Jay Jaeger especially for hard
sectored disks
(*) Currently you may load only one kernel module accessing the
Catweasel controller at the same time.