I have had occasion to figure something out then promptly forget all their weird things I had to do to get it working. This is part of the reason I'm making this. The second reason is that I've gotten tons of help (Which I appreciate) but I really want to know why I'm doing something. For example - why would I need the the devx_xenialpup64_7.5.sfs file loaded? The answer of course is this is the system that lets you compile source code and make kernel modules or programs.
You can use the basic ideas to setup VirtualBox for 32 bit cpus or tahrpup but this is very specific,
How to get VirtualBox working on XenalPup using an AMD Athlon 64 CPU
You need to set up xenialpup to compile programs so for the 7.5 version of xenialpup you need the devx_xenialpup64_7.5.sfs file. You will find it where you found the xenialpup.iso file. The link (Today) is
http://distro.ibiblio.org/puppylinux/puppy-xenial/64/
You will see the .iso for making an install-able xenialpup bootable CD and the devx file to make your maching be able to compile source code.
If you not sure you should verify that you have a 64 bit CPU (like me)
uname -a
Linux puppypc24847 4.9.58 #1 SMP PREEMPT Mon Nov 13 15:54:01 GMT 2017 x86_64 x86_64 x86_64 GNU/Linux
it returns x86_64 (several times) so we know we have a 64 bit CPU.
So assuming you have found the devx_xenialpup64_7.5.sfs file you can load it in with the SFS-Load on-the-fly program. Its pretty cool because once done you can compile source code into programs or as with this case a kernel module.
We need to have the operating system (xenialpup) header files. This is source from the system that we need to make a system kernel file. It assures it will plug into xenialpup You could do uname -a ALL or just uname -r to see the header file version without all the rest
uname -r
*Note if your curious type uname --help and it will spell out all possible commands.
Using the SFS-Load on-the-fly program load the 4.9.58 headers.sfs file. These are the Kernel sources file headers for xenialpup. Verify that your headers match the version you got when you ran uname - r On my machine I loaded the .sfs file using (again) the SFS-load on-the-fly program. So load
kernel_sources-4.9.58-xenialpup64.sfs
Now using Palemoon or Firefox, Chrome etc etc etc go to the VirtualBox download page
https://www.virtualbox.org/wiki/Linux_Downloads
Now you need to know which system xenial pup is based on. Here are some examples
14.04 LTS (Trusty Tahr) *Note LTS means Long Time Supported. Its not a beta test version.
14.10 (Utopic Unicorn)
15.04 (Vivid Vervet)
15.10 (Wily Werewolf)
16.04 LTS (Xenial Xerus) <- THATS IT!!! xenialpup is based on Ubuntu Xenial
I selected the xenial version 16.04 AMD64 .deb file. I double clicked it and it told me everything was set up (Not!) and I could run Virtual box from the menu. This is not correct so back to the terminal I typed
VirtualBox <-note caps on V and B. I got an error informing me that the vboxdrv was not loaded. The reason for this is that I had not compiled a vboxdrv kernel module.
The error message invited me to run sudo /sbin/vboxconfig First we are always root so we don't use sudo. Second running /sbin/vboxconfg will compile a new kernel module. Getting the devx and kernal modules are the first part which is understandable. To actually make it work these are the werid things you need to take care of.
1) If you click to the /etc/rc.d directory you probably won't see subdirectories named rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d If you do? Fine other wise you will need to make these directories or virtual box will cough up a hairball. Why it doesn't just make up these directories itself is a mystery. Maybe puppy is the only distro that doesn't have them? I don't know so lets just do it.
2) VirtualBox assumes that we have a vboxusers group setup. To get past it complaining just run.
adduser -D -H vboxusers
Now VirtualBox has its user group and won't spew out error messages.
Now from terminal its ok to try running
/sbin/vboxconfig
If you remembered to load the devx and xenial headers files you should be good! Be patient. It takes a while and it doesn't have any progress bar etc to tell you its doing something.
Assuming this works you have compiled a kernel module based on your operating system and things like your display card. I mention this because if you are setting up (example) a NVIDA native driver you will need to have done this before using vboxconfig to make the kernel module.
I won't detail building an NVIDIA driver file but its similar. You still need the devx .sfs file and the xenialpup headers files .sfs. Then you download the NVIDIA proper source for your display board and execute the nvidia .run file by keyboard. *Note you need to click the exit command on the menu and on the Puppy Log Out menu select Exit to Prompt.