-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathethersrv.txt
83 lines (65 loc) · 3.62 KB
/
ethersrv.txt
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
ethersrv Copyright (C) 2017, 2018 Mateusz Viste, 2020 Michael Ortmann
http://etherdfs.sourceforge.net
ethersrv is an implementation of EtherSRV for Linux. It allows a Linux
computer to share its drive over Ethernet with multiple DOS clients running
EtherDFS.
Requirements:
FreeBSD or Linux 2.6.12+ (FAT_IOCTL_GET_ATTRIBUTES)
Clang or GCC
How to build:
just type 'make', then an 'ethersrv' binary should appear (unless things go
wrong).
How to run:
ethersrv [options] iface directory [directory2] ... [directoryN]
Note that, in order to be able to operate on ethernet sockets, ethersrv needs
to have the CAP_NEW_RAW system capability. Usually this means that you have to
run it as root.
where:
'iface' is the name of the network interface you wish to hook ethersrv to
(for example eth0)
'directory' is the directory in your filesystem you wish to share (for
example /mnt/dosfs). You can mention several directories (up to
24), the first one will always be mapped to a virtual "C:" drive,
the second to "D:", etc.
available options:
-f do not daemonize the process (stay in foreground)
Notes:
* it is HIGHLY recommended to run ethersrv over a FAT filesystem.
Other file systems might work, too, but FAT attributes will be unavailable
and DOS might get puzzled with upper/lower case filenames. The presence
and/or order of '.' and '..' directory entries might also end up being
unusual, possibly confusing applications that rely on the assumption that
both these entries are first in non-root directories.
* some Linux distributions treat FAT volumes in a case-sensitive way by
default. Such behavior leads to troubles when used by DOS (through
EtherDFS). I tested two Linux modules for FAT support: 'msdos' and 'vfat'.
The 'msdos' module worked consistently for me at all times. The 'vfat'
module, on the other hand, is known to interpret file names as UTF-8 on
some distributions, which makes the file system case-sensitive. To avoid
this, either use the 'msdos' module, or mount your vfat volume with an
explicit iocharset. Examples:
# mount /dev/sda2 /mnt/fat -t msdos
# mount /dev/sda2 /mnt/fat -t vfat -o iocharset=cp437
You can also create a FAT disk image and mount that. Example:
# fallocate -l 1024M fat.img
# mkfs.msdos fat.img
# mount -o loop fat.img /mnt/fat
===[ License ]================================================================
ethersrv is distributed under the terms of the MIT License, as listed below.
Copyright (C) 2017, 2018 Mateusz Viste
Copyright (c) 2020 Michael Ortmann
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.