EmbeddedRelated.com
Forums

How to browse Windows harddisks via ethernet from embedded micro???

Started by Marc March 20, 2004
Hi,

I want to access from a microcontroller (no OS) a harddisk (browsing
directories, reading/writing files) on a Windows PC via ethernet and I
have currently no idea what kind of protocol or mechanism I need to
implement to get it running?

Can somebody give me some hints or ideas???

Thank you very much,

Marc
On 20 Mar 2004 11:05:28 -0800, damc4@gmx.de (Marc) wrote:

>Hi, > >I want to access from a microcontroller (no OS) a harddisk (browsing >directories, reading/writing files) on a Windows PC via ethernet and I >have currently no idea what kind of protocol or mechanism I need to >implement to get it running? > >Can somebody give me some hints or ideas??? > >Thank you very much, > >Marc
I think you first need an etheternet TCPIP stack on the micro, and some sort of FTP client. On the host PC, run an FTP server.
Marc wrote:

> Hi, > > I want to access from a microcontroller (no OS) a harddisk (browsing > directories, reading/writing files) on a Windows PC via ethernet and > I have currently no idea what kind of protocol or mechanism I need > to implement to get it running? > > Can somebody give me some hints or ideas???
The protocol windows uses for filesharing is CIFS (aka SMB). If you are familiar with TCP/IP all you need should be the following book (available online and printed). http://ubiqx.org/cifs/ If you have TCP running it is not too difficult to implement CIFS (or at least parts of it ;-). However, make sure you have a packet sniffer for debugging. I used ethereal: it has CIFS support, is available for both Linux and Windows and it is *free* ;-))) You could also use other protocols like FTP, but this would require additional server software on the PC. I have used a IIM7010 from wiznet for the TCP/IP part. http://www.wiznet.co.kr Cheers Jan-Hinnerk PS: Sorry, I have no project homepage, although I have planned to make one over a year ago ;-(
Marc wrote:

> Hi, > > I want to access from a microcontroller (no OS) a harddisk (browsing > directories, reading/writing files) on a Windows PC via ethernet and I > have currently no idea what kind of protocol or mechanism I need to > implement to get it running? > > Can somebody give me some hints or ideas???
Apart from the TCP/IP, and perhaps SMB, you need some insight into the filesystem. NTFS is not public, or at least not officially. Rene -- Ing.Buero R.Tschaggelar - http://www.ibrtses.com & commercial newsgroups - http://www.talkto.net
> I want to access from a microcontroller (no OS) a harddisk (browsing > directories, reading/writing files) on a Windows PC via ethernet and I
I assume you mean access a hard drive shared with "vanilla" Windows filesharing. The high-level network protocol you need is called SMB. SMB can run over a variety of protocols, but I'd suggest TCP/IP as being the protocol of choice for you. In addition to these two protocol layers, you will need a driver for whatever Ethernet MAC you intend to use. Your use of the phrase "no OS" is kind of misleading, because you will certainly have an OS by the time you stitch together all the code you need to do what you want. I strongly, STRONGLY suggest you look at pre-existing OSes with some or all of your required functionality inbuilt. Otherwise you are reinventing far too many wheels.
Rene Tschaggelar <none@none.net> wrote in message news:<405cc956$0$704$5402220f@news.sunrise.ch>...

> Apart from the TCP/IP, and perhaps SMB, you need some > insight into the filesystem. NTFS is not public, or at > least not officially.
Huh? You don't need to know anything about the underlying filesystem to access an SMB sharepoint.
"Marc" <damc4@gmx.de> wrote in message
news:cf0ec8fc.0403201105.402c3293@posting.google.com...
> Hi, > > I want to access from a microcontroller (no OS) a harddisk (browsing > directories, reading/writing files) on a Windows PC via ethernet and I > have currently no idea what kind of protocol or mechanism I need to > implement to get it running? > > Can somebody give me some hints or ideas??? > > Thank you very much, > > Marc
If you wanted to keep the microcontroller side simple and light-weight, you could shift the burden to the PC and write a little TCP server using sockets that simply did 'fopen, fread, fwrite' and family on behalf of the microcontroller; then all you need to do is re-target fopen, fread, fwrite and family on you embedded platform to talk to the server. Crude, but simple and it doesn't require any protocol above TCP (apart from the home-grown file system interface just mentioned). Tim
Thank you all for your help!!!


Gary, using FTP is one solution I also thought of.
But than I have to run the FTP server on the PC, and that's waht I
don't want.

Jan-Hinnerk, yes I think "CIFS" is the information I was looking
for!!! Thanks!!!

Rene, as Lewin wrote, the filesystem should be transparent to the
transmission over ethernet. Filesystems are handled only by the OS.
E.g. you can access a NTFS-partition on a WindowsXP-PC over ethernet
from a Windows95 PC.

Lewin. I am using a micro inside an FPGA and have already a TCP/IP
stack and the connection to the ethernet hardware ready. So that's not
the problem.
I really don't want to use an OS (like Linux, embOS, ...). Sure I need
some kind of interrupt-task-whatever control stuff, what you can
define as OS, but ...

Thank you very much again,

Marc







damc4@gmx.de (Marc) wrote in message news:<cf0ec8fc.0403201105.402c3293@posting.google.com>...
> Hi, > > I want to access from a microcontroller (no OS) a harddisk (browsing > directories, reading/writing files) on a Windows PC via ethernet and I > have currently no idea what kind of protocol or mechanism I need to > implement to get it running? > > Can somebody give me some hints or ideas??? > > Thank you very much, > > Marc
"Marc" <damc4@gmx.de> wrote in message
news:cf0ec8fc.0403210227.61adbefe@posting.google.com...
> Thank you all for your help!!! > > > Gary, using FTP is one solution I also thought of. > But than I have to run the FTP server on the PC, and that's waht I > don't want. > > Jan-Hinnerk, yes I think "CIFS" is the information I was looking > for!!! Thanks!!! >
CIFS is definitely the nicest from the user's view point (they can just use simple windows shares), but there is far more work involved in getting it running than using ftp. There are dozens of good free ftp servers available for windows, some with nice user-friendly guis, so the server side is not hard. It is a much simpler protocol, and avoids all sorts of issues such as authentication against domains, or variations between windows forks (these sorts of things would be *much* easier if you use Samba). My strong advice would be to get ftp running first, and then look at CIFS if you can justify the development time (and added hardware requirements on the target, depending on what resources you have available). Also consider doing it backwards - run an ftp server on the target, and windows users (on recent windows versions, anyway) will see the server like a shared directory, and can drag-and-drop files back and forth between the pc and the target.
> Rene, as Lewin wrote, the filesystem should be transparent to the > transmission over ethernet. Filesystems are handled only by the OS. > E.g. you can access a NTFS-partition on a WindowsXP-PC over ethernet > from a Windows95 PC. > > Lewin. I am using a micro inside an FPGA and have already a TCP/IP > stack and the connection to the ethernet hardware ready. So that's not > the problem. > I really don't want to use an OS (like Linux, embOS, ...). Sure I need > some kind of interrupt-task-whatever control stuff, what you can > define as OS, but ... > > Thank you very much again, > > Marc > > > > > > > > damc4@gmx.de (Marc) wrote in message
news:<cf0ec8fc.0403201105.402c3293@posting.google.com>...
> > Hi, > > > > I want to access from a microcontroller (no OS) a harddisk (browsing > > directories, reading/writing files) on a Windows PC via ethernet and I > > have currently no idea what kind of protocol or mechanism I need to > > implement to get it running? > > > > Can somebody give me some hints or ideas??? > > > > Thank you very much, > > > > Marc
Lewin A.R.W. Edwards wrote:
> Rene Tschaggelar <none@none.net> wrote in message news:<405cc956$0$704$5402220f@news.sunrise.ch>... > > >>Apart from the TCP/IP, and perhaps SMB, you need some >>insight into the filesystem. NTFS is not public, or at >>least not officially. > > > Huh? You don't need to know anything about the underlying filesystem > to access an SMB sharepoint.
Oh, my fault. The Harddisk is on a Windows PC, not on the Microcontroller itself. Rene -- Ing.Buero R.Tschaggelar - http://www.ibrtses.com & commercial newsgroups - http://www.talkto.net