This is meant as a simple consolidated steps to install Arch Linux ARM to the Black Pogoplug Pro version as well as configurations. This is meant for Newbies from a newbie. If anyone has a step by step on configuring dovecot or an smtp server that can be used by the qsee camera, let me know. Gmail seems to limit the rate at which email can be sent. The following are what I installed and are unique to my needs and hopes it helps someone:
1. Arch Linux ARM
2. samba (window sharing)
3. proftpd (ftp server)
4. webmin (web base graphical server management)
The Pogoplug uses a 2GB noname flash drive and is connected to two external drives. I have a Q-See DVR that uses the ftp servers to upload to the ftp sites. I also wanted to configure Q-See to send mail using my own smtp server but that has not worked yet. The msmtp only allows mail to be sent from command line or from the system iteself. Not sure how to configure dovecot or sendmail.
1. Arch Linux ARM
Follow the installation steps here:
http://archlinuxarm.org/platforms/armv6/pogoplug-provideov3
However, on the last step where it tells you to update the system; be aware of this issue. This may be a non issue in new installation but I am writing this with a pre-existing installation:
http://archlinuxarm.org/forum/viewtopic.php?f=29&t=2690
Basically:
$this->bbcode_second_pass_code('', ' pacman -Syu (no to pacman first)
pacman -Syu
pacman Sf udev-oxnas openssl')
You should also add some additional users for your share files. You can also use webmin once you have that installed.
$this->bbcode_second_pass_code('', ' useradd <username1>
passwd <username1>
')
2. samba
Follow the installation steps here:
http://archlinuxarm.org/support/guides/applications/samba
These are the settings I used to get it to work and share the drives/folders:
$this->bbcode_second_pass_code('', '
#/etc/samba/smb.conf
[global]
workgroup = HOME
server string = MediaServer
#list allowed servers address here, not sure it it takes wild or whole network range
hosts allow = 192.168.1.1 192.168.2
netbios name = ALARM
#security = share
security = user
encrypt passwords = yes
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
log file = /var/log/samba/%m.log
max log size = 50
dns proxy = no
client ntlmv2 auth = yes
#disable netbios = yes
socket options = TCP_NODELAY SO_KEEPALIVE SO_RCVBUF=17520 SO_SNDBUF=17520 IPTOS_LOWDELAY
[drive1]
path = /media/drive1
valid users = username1
read only = no
public = no
writable = yes
force user = username1
delete readonly = yes
oplocks = yes
[drive2]
path = /media/drive2
valid users = username1
read only = no
public = no
writable = yes
force user = username1
delete readonly = yes
oplocks = yes
[Movies]
path = /media/drive1/Media/Movies/
read only = yes
valid users = username1 username2
write list = username1
public = yes
force user = username2
delete readonly = yes
oplocks = yes
[Itunes]
path = /media/drive2/Media/Itunes/
read only = yes
valid users = username1 username2
write list = username1
public = yes
force user = username2
delete readonly = yes
oplocks = yes
[Public]
path = /media/drive1/Media/Public/
read only = no
writable = yes
write list = username1 username2
public = yes
printable = no
valid users = username1 username2
delete readonly = yes
oplocks = yes
')
External Drives:
If you have two drives and they are of the same make and model. They may the same volume names. It's simpler to rename these in windows environment to have different volume names.
http://archlinuxarm.org/forum/viewtopic.php?f=29&t=2064
If you have your external drives plugged in, you will have to mount them.
1. check where your device is at
$this->bbcode_second_pass_code('', 'df')
2. create the mount point, can be anywhere.
$this->bbcode_second_pass_code('', 'mkdir media/drive1
mkdir media/dirve2
')
3. mount
$this->bbcode_second_pass_code('', '
mount /dev/sdb1 /media/drive1
mount /dev/sdc1 /media/drive2
')
To start the service:
$this->bbcode_second_pass_code('', 'rc.d start samba')
3. proftpd
There are lots of sites and forum that shows you how to setup your configuration files that is secured and is similar to what I have below (unless I F it up).
This is a good thread:
http://ubuntuforums.org/showthread.php?t=79588
Ignore step 1 on there, to install use:
$this->bbcode_second_pass_code('', 'pacman -S proftpd')
Also, the instructions created ftp folders in your linux home directory. I made mine in the external drives as in /media/drive1 which is the mount location I made earlier.
Basic steps are creating the ftp directories as shown in the thread above. You create another user for ftp usage as shown in the thread. Then you edit the configuration files. Restart the server and test. See below for troubleshoot.
Issues:
You will probably run into some sort of permission denied issues. Part of step 2 where you do chmod. I am not sure how relevant it's if you are trying to share a windows base partition. Some sites suggests that the ftp folders need to be own by the ftpusers or what not. This is not so, atleast not on the windows base drives/folders. I can't attest the same to a linux shared ftp drives/folders.
Also the ftpusers that you created which shouldn't have a home directory needs to have a secondary group of "users" otherwise you will run into permission issues. I wrestled with this problems for a while until I tried that. Not sure if there are other work arounds.
$this->bbcode_second_pass_code('', ' usermod -a -G ftp-users,users <username> ')
Unique issues: Also, my Qsee camers ftp uploads wanted to create folders within the uploads folder. Instead of having the ftpusers for Qsee uses the root ftp folder as the home folder. I had to make the upload folder the home folder. Otherwise, it can't create that folder automatically. It's not smart enough to create it in the upload folder eventhough I specified the upload folder as the "remote folder" once it logged in.
$this->bbcode_second_pass_code('', '
# edit configuration file /etc/proftpd.conf
ServerName "ftpservername"
ServerType standalone
DefaultServer on
RequireValidShell off
UseFtpUsers off
AllowRetrieveRestart on
# Port 21 is the standard FTP port.
Port 21
# Don't use IPv6 support by default.
UseIPv6 off
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances 30
# Set the user and group under which the server will run.
User ftpJohn
Group ftp-users
ExtendedLog /var/log/ftp.log auth,all
DenyFilter \*.*/
# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~
# Normally, we want files to be overwriteable.
AllowOverwrite on
# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
DenyAll
</Limit>
<Directory /media/drive1/FTP>
Umask 022 022
AllowOverwrite off
<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
DenyAll
</Limit>
</Directory>
<Directory /media/drive1/FTP/Downloads/*>
Umask 022 022
AllowOverwrite off
<Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD>
DenyAll
</Limit>
</Directory>
<Directory /media/drive1/FTP/Uploads/*>
Umask 022 022
AllowOverwrite on
<Limit MKD XMKD RNRF RNTO DELE RMD XRMD STOR>
AllowAll
</Limit>
</Directory>
')
To start the service:
$this->bbcode_second_pass_code('', 'rc.d start proftpd')
4. webmin
This was a pretty easy setup.
https://wiki.archlinux.org/index.php/Webmin
Auto load the services on bootup:
$this->bbcode_second_pass_code('', 'nano /etc/rc.conf')
Scroll to the bottom and add the three services configured earlier:
$this->bbcode_second_pass_code('', ' DAEMONS=(.. vsftpd webmin samba proftpd) ')
Common files and commands (assuming you are root):
$this->bbcode_second_pass_code('', '
nano /etc/rc.conf
nano /etc/proftpd.conf
nano /etc/samba/smb.conf
nano /etc/webmin/miniserv.conf
rc.d start samba
rc.d restart samba
rc.d stop samba
shutdown -h now
reboot
')