Home NAS (Advanced) • Kernel customization (for extra modules and device support)

Kernel customization (for extra modules and device support)


During my latest post regarding the creation of your own kernel for your NAS devices you’ve built the standard kernel, which gives a basic working kernel for ext3 support IPv4 etc, but nothing extra.

Why would you want a customized kernel?
If you want extra filesystem or device support you have to build that into the kernel. With this you are creating your custom kernel and this may seem as a difficult process, but when you read carefully it’s easy to accomplish and can give you much more functionality.

Any kernel recommendations?
This is very user specific but there are some things that need to be enabled in my opinion:

  • Extra filesystem support (Ext4, JFS, XFS, NTFS and Reiser)
  • IPv6 support (not enabled on the default NAS kernel config)
  • Iptables support
  • Quota support (for a NAS this can be very handy with multiple users)
  • NFS / CIFS support for mounting networkshares

Some optional interesting things found in the kernelconfig are:

  • Embedded Kirkwood soundcard support
  • IP Phone support in Kirkwood CPU
  • Video streaming for Kirkwood

How to add this support?
On my first post regarding kernel building, you get at a certain point when you give the board type (kirkwood_defconfig or orion5x_defconfig etc). After that step give a:
make menuconfig

Now you get in a interactive menu, feel free to explore it, but to enable my given points above you have to select the following (which will also learn you how to enable extra modules for your needs):
Filesystems ---> Enable what you need for filesystem support
In Filesystems, dive into:
[*] Network File Systems ---> (Enable CIFS and NFS support and other things you like)
Then back out and dive in:
DOS/FAT/NT Filesystems ---> (Enable NTFS, when you do, also check the bottom option for write support!)

Then back out and enable the following 2 options for quota support:
[*] Quota support
<*> Old quota format support
<*> Quota format vfsv0 and vfsv1 support

Then back out to get back to the main menu.

For extra networking options, such as IPv6 and iptables support, dive into:
[*] Networking support --->
Networking options --->
<*> The IPv6 protocol --->
(Enable this for IPv6 support)
For iptables support dive into (same submenu as above):
[*] Network packet filtering framework (Netfilter) --->
IP: Netfilter Configuration --->
<*> IP tables support (required for filtering/masq/NAT)

Back out to the main menu and select:
Save an Alternate Configuration File

When done saving your custom config you’ll return to the prompt, you can continue my original kernel building post :).

Now i’ve shown you how to further customize your kernel, if you have questions or requests on help for particular modules, let me know via a comment :).

Author:Jeffrey Langerak

3 responses to “Kernel customization (for extra modules and device support)”

  • Chris 12-02-2011 at 19:04 Reply 

    SHS, rsync : I *assume* do not need to be added to the kernel but can be installed later?

    • langerak 12-02-2011 at 23:19 Reply 

      Rsync and SSH are using the same protocols which is not dependent on the kernel and will work with the default kernel configuration. Although you have to install rsync and openssh on your distro.

      The modules given here are for extra functionality on your NAS and are not needed for basic functionality but will extend just that :).

      You are free to add any extra support you think you need having in your kernel, that’s what makes this guide show you.

  • Chris 12-02-2011 at 19:07 Reply 

    typo SSH

Leave a Reply

Your email address will not be published. Required fields are marked*



This site uses Akismet to reduce spam. Learn how your comment data is processed.