how to setup ftp?

I want to setup my target board as server,other can visit it by ftp,how to setup my target board?

Jeff Strickrott once posted his working build file for bringing up ftpd and telnetd on the embedded systems.

# Svr Buildfile 
# Aim: To make a network enabled debug server using telnet, ftp to pdebug 
# Target: x86,bios 

# Approach: To make this type of image you'll need an NIC driver with a TCP/IP 

# stack. Telnet/ftp can easily work with the tiny stack. I'll assume that 
# you have an NE2000 compatible PCI NIC. If the PC doesn't have a PCI bus 
# and card is ISA, you have to exclude "pci-bios." Select the appropriate 
# driver for your card. 

[virtual=x86,bios +compress] .bootstrap={ 
startup-bios -s 64k -N node1 
PATH=/proc/boot:/bin LD_LIBRARY_PATH=/proc/boot:/usr/lib procnto 
} 

[+script] startup-script = { 

display_msg " " 
display_msg "Welcome to QNX on a PC-compatible BIOS system" 
seedres 

display_msg "Starting slogger" 
slogger & 
waitfor /dev/slog 

display_msg "Starting PCI BIOS" 
pipe & 
pci-bios & 
waitfor /dev/pci 

# put in your actual IP, netmask and gateway 
display_msg "Starting Network Driver" 

# for small tcpip stack 
# io-net -dne2000 -pttcpip if=en0:192.168.0.200:255.255.255.0 default=192.168.0.1 

# or full stack 
io-net -dne2000 -ptcpip 
waitfor /dev/io-net/en0 
waitfor /dev/socket 
ifconfig en0 192.168.0.200 netmask 255.255.255.0 
route add default 192.168.0.1 

# staring the dhcp client 
# display_msg "Starting DHCP" 
# dhcp.client -h vision & 
# if_up en0 

display_msg "Starting inetd" 
inetd & 

# pdebug needs devc-pty and esh 
devc-pty & 
waitfor /dev/ttyp0 

display_msg "Starting Console" 
devc-con -n1 & 
reopen /dev/con1 
[+session] HOME=/ TERM=qansi-m ksh & 
} 

# 
# file links 
# 
[type=link] /usr/lib/ldqnx.so.2=/proc/boot/libc.so 
[type=link] /tmp=/dev/shmem # tmp points to shared memory 
[type=link] /bin=/proc/boot 
[type=link] /proc/boot/sh = /proc/boot/ksh 


# 
# binary files to include in image 
# 
libc.so 
libsocket.so 
npm-tcpip.so 
devn-ne2000.so 

[code=uip data=copy perms=+r,+x] # All executables that can be restarted go below. 

# config files for telnetd, inetd, ... uncomment if you want to use hosts inetd.conf files, etc... 
# note must fix up links to properly point to telentd and other files 
# /etc/hosts=/etc/hosts 
# /etc/inetd.conf = /etc/inetd.conf 
# /etc/services = /etc/services 
/etc/passwd=/etc/passwd 
/etc/group=/etc/group 
/usr/lib/terminfo = /usr/lib/terminfo 

# Include a console driver 
devc-con 

# Include pci server 
pci-bios 
seedres 
pci 

# other servers 
pipe 
devc-pty 
slogger 
sloginfo 

# debug 
pdebug 

# shell support 
ksh 
termdef 
login 
logout 

# network 
ping 
hostname 
ifconfig 
route 
inetd 
ftpd 
telnetd 
io-net 
# telnet 
# ftp 

# process control 
slay 
ps 
shutdown 

# file system 
ls 
more 
mv 
cp 
rm 

# other options 
# dhcp.client 
# if_up 
# stty 
# devc-ser8250 


# Data files are created in the named directory. 
/etc/hosts = { 
127.1 localhost.localdomain localhost 
192.168.0.200 node1 
192.168.0.1 node2 
192.168.0.25 node3 
} 

/etc/services = { 
ftp 21/tcp 
telnet 23/tcp 
pdebug 8000/tcp 
} 

/etc/inetd.conf = { 
ftp stream tcp nowait root /proc/boot/fdtpd fdtpd 
telnet stream tcp nowait root /proc/boot/telnetd telnetd 
pdebug stream tcp nowait root /proc/boot/pdebug pdebug - 
} 

# put your DNS names here 
/etc/resolv.conf = { 
nameserver 131.94.128.2 
nameserver 131.94.64.4 
}