I haven’t tinkerd with Linux since a very long time, so I am also a bit of a noob on some stuff, so others might correct me if I am wrong here
The kernel is the base operating system, the part that is directly communicating with your hardware and on top of which all the applications are running. Currenlt the BananaPi is mainly relying on custom build kernels. You might take a look at the blog FW-Web - Wiki of frank-w about how to build your ownt (in this case for the R2).
Or you take an existing build like
The kernel has roughly 4 parts:
- The core kernel that you boot in, which is in /boot
- Compiled library files in /usr/lib/linux-image-*
- Modules for different hardware (e.g. sound card, usb, wifi, …) in /lib/modules/*-kernel
- Sources in /usr/src/linux-headers-*
There might be an additional bootloader (u-boot) involved which is responsible to jump start the system. It essentially is telling the board where to look for the kernel. But if you have already a system up and running you may leave that as is.
Normally they come packed together in files like:
- 4.4.89-BPI-M64-Kernel.tgz (2+3)
- BPI-BOOT-bpi-m64-linux4.4.tgz (1)
- linux-headers-bpi-m64-linux4.4.tgz (4)
So to get a new kernel installed can be as easy to just extract them over to the destination.
@spikerguy mentioned in Can I burn any ARM64 install ISO on my SD? that he might have a more detailed how-to.
I personally would start of burning one of the images mentioned above (preferable 4.19) on a SD card and try to get the system up and running on the card. Afterwards moving everything just over to the internal memory (keep your existing stuff on a separate SD card as backup!). I wouldn’t necessarily go for the latest 5.x kernels announced here yet, as they may need some tweeking first.
The other question is an entirely different topic.
I don’t know which minimum version of node your application need. I would have tried to install it actually via the debian package manger instead.
For your application, again, try to get it up and running on an SD card first (eventually you may need to resize the working partition if not all space of your card is available). Or even on a desktop using the same node version that is on your Pi. Then try if you could compile and pack the node application and dependencies together for deployment (there are some tools that will essentially remove all the parts that are not needed).