Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Compiling a custom kernel with unRAID 4.2.1

Featured Replies

Just simple questions and perhaps for a FAQ. 

Does Unraid compile for a 64 bit version of Linux? 

Has anybody written a howto for gentoo+unraid?

If you have a development system with Slackware 12 with gcc 4.2.1, grab the kernel 4.6.22.5 source from  here:

 

Near as I've been able to tell, all the modules packaged with unraid server are compiled with gcc 3.4.6 and use glibc 2.3.6. Might make a difference in compatability?

  • 3 weeks later...

anything cooking here lately?

 

???

You can check the date, and depending on your perception of the term lately, decide if the posts falls under that category.

I think the word "late" is something about being in the end of a timeframe, so lately would span from maybe early end to late end.

 

I hope that Unraid, and compiling a custom kernel, is in the early stages of its lifecycle.

so: No.

 

yeah I know! You were just bumbing a thread. :-))

:o Phew... !!  ??? Hope any "news" in the future isn't so obfuscated  ;D

 

  • 1 month later...
  • 4 weeks later...

It looks like the .config file in 4.3.1 is missing the option for FUSE support.

 

So FYI, if you're building a custom kernel for 4.3.1, make sure you explicitly enable FUSE when you run "make menuconfig".

It looks like the .config file in 4.3.1 is missing the option for FUSE support.

 

So FYI, if you're building a custom kernel for 4.3.1, make sure you explicitly enable FUSE when you run "make menuconfig".

 

In menuconfig, its under Files Systems > File Systems in User Space Support

While we're on the topic ... how risky do you guys think it would be to upgrade to a kernel newer than that provided with 4.3.1? 

 

Specifically, I'm looking at trying out 2.6.26-rc7.  The reason I want to upgrade is because I'd like to run rtorrent on my unRAID box (one less thing to run on Windows).  The problem is that rtorrent uses mmap(), which up until 2.6.26 was not supported by the FUSE file system driver. 

 

I'm sort of new to Linux and personally I don't think it would be *that* risky, but I was wondering if anyone else has any thoughts before I try it out.

  • Author

I'm using 2.6.26-rc7 on my bench/development unRAID system... but I don't use user shares.

The problem is that rtorrent uses mmap(), which up until 2.6.26 was not supported by the FUSE file system driver.

 

I'm using rtorrent by directly chdir'ing to the /mnt/diskx/bittorrent directory.

I know I'm not using user shares for this application. I just wanted to get it going.

it's a small price to pay in the mean time.

I will wait until 2.6.26 is fully released.

 

FYI,

 

I've moved back down to 2.6.24.4.  There seems to be a bug in the Realtek network driver in 2.6.26 that is annoying enough for me to stop using it.  I had everything setup with rtorrent running when I got the following:

 

Jun 24 18:29:33 Tower kernel: NETDEV WATCHDOG: eth0: transmit timed out
Jun 24 18:29:33 Tower kernel: ------------[ cut here ]------------
Jun 24 18:29:33 Tower kernel: WARNING: at net/sched/sch_generic.c:222 dev_watchdog+0x80/0xc3()
Jun 24 18:29:33 Tower kernel: Modules linked in: acpi_cpufreq md_mod fuse pata_jmicron jmicron ide_core ahci sata_sil24 libata dock r8169
Jun 24 18:29:33 Tower kernel: Pid: 0, comm: swapper Not tainted 2.6.26-rc7-unRAID #2
Jun 24 18:29:33 Tower kernel:  [<c01141e6>] warn_on_slowpath+0x40/0x67
Jun 24 18:29:33 Tower kernel:  [<c01108ca>] __wake_up_common+0x2d/0x52
Jun 24 18:29:33 Tower kernel:  [<c0111dab>] __wake_up+0xf/0x15
Jun 24 18:29:33 Tower kernel:  [<c011459a>] wake_up_klogd+0x2b/0x2d
Jun 24 18:29:33 Tower kernel:  [<c011071e>] enqueue_task+0xa/0x14
Jun 24 18:29:33 Tower kernel:  [<c0124b18>] update_wall_time+0x51b/0x685
Jun 24 18:29:33 Tower kernel:  [<c0106218>] read_tsc+0x6/0x22
Jun 24 18:29:33 Tower kernel:  [<c0106218>] read_tsc+0x6/0x22
Jun 24 18:29:33 Tower kernel:  [<c011ec53>] queue_delayed_work_on+0x70/0x7b
Jun 24 18:29:33 Tower kernel:  [<c02932be>] dev_watchdog+0x0/0xc3
Jun 24 18:29:33 Tower kernel:  [<c011ec84>] queue_delayed_work+0x16/0x18
Jun 24 18:29:33 Tower kernel:  [<c02932be>] dev_watchdog+0x0/0xc3
Jun 24 18:29:33 Tower kernel:  [<c029333e>] dev_watchdog+0x80/0xc3
Jun 24 18:29:33 Tower kernel:  [<c0119fa3>] run_timer_softirq+0xdb/0x11c
Jun 24 18:29:33 Tower kernel:  [<c0117630>] __do_softirq+0x35/0x75
Jun 24 18:29:33 Tower kernel:  [<c0117692>] do_softirq+0x22/0x26
Jun 24 18:29:33 Tower kernel:  [<c010c572>] smp_apic_timer_interrupt+0x5c/0x64
Jun 24 18:29:33 Tower kernel:  [<c010697f>] mwait_idle+0x0/0x2d
Jun 24 18:29:33 Tower kernel:  [<c0103360>] apic_timer_interrupt+0x28/0x30
Jun 24 18:29:33 Tower kernel:  [<c010697f>] mwait_idle+0x0/0x2d
Jun 24 18:29:33 Tower kernel:  [<c01069a9>] mwait_idle+0x2a/0x2d
Jun 24 18:29:33 Tower kernel:  [<c010185f>] cpu_idle+0x44/0x58
Jun 24 18:29:33 Tower kernel:  =======================
Jun 24 18:29:33 Tower kernel: ---[ end trace cdb96bb965a1ca6e ]---
Jun 24 18:29:33 Tower kernel: r8169: eth0: link up

 

After this, the network interface is basically hosed until I reboot.  Some googling reveals that I'm not the only one seeing this problem.  Hopefully it'll be fixed by 2.6.26 final.

I'm considering an rtorrent install package and then a secondary rtorrent pacakge for the location.

 

This will let you select the home directory of a user called rtorrent then have the application use that as it;s home base.

 

Thereafter you can do something like

 

HOME=/mnt/disk1/bittorrent installpkg rtorrent_unraid.tgz

 

which will make the user, build the home tree, then put the .rtorrent.rc file in place include the session and watch directories, etc, etc.. then setup a startup script to launch it with screen...

 

one of the cool things I've learned about screen is you can start rtorrent with

 

screen -S rtorrent -D -m /usr/bin/rtorrent

 

which will start it in the background...

 

Then login from some other location and run 

screen -X rtorrent

and see/control a copy of the session.

When you disconnect from this session, the other session is still running...

Pretty cool.

 

So this is one of the things I've been working on.. i.e. automating the install.

 

Getting back to the issue with the kernel.. set the /home directory of the rtorrent user to the /mnt/diskx directory...

then when the latest/greatest kernel is ready, alter the home directory.

 

If the .rtorrent.rc is using relative directories such as

 

~rtorrent

~rtorrent/session

~rtorrent/watch

 

then you should still work OK.

FYI,

 

I've moved back down to 2.6.24.4.  There seems to be a bug in the Realtek network driver in 2.6.26 that is annoying enough for me to stop using it.  I had everything setup with rtorrent running when I got the following:

 

After this, the network interface is basically hosed until I reboot.  Some googling reveals that I'm not the only one seeing this problem.  Hopefully it'll be fixed by 2.6.26 final.

 

Welcome to the world of Realtek  :'(

That's a really cool idea WeeboTech.

 

I guess there's still the issue of customizing the .rtorrent.rc file.  I've set mine up like so:

 

port_range = 1720-1740
directory = /mnt/user/Junk/torrents/data
session = /mnt/user/Junk/torrents/.rtorrent-session
safe_sync = yes
stop_on_ratio=100

schedule = watch_directory_music,10,10,"load_start=/mnt/user/Junk/torrents/music/*.torrent,d.set_custom1=/mnt/user/Music"
schedule = watch_directory_video,10,10,"load_start=/mnt/user/Junk/torrents/video/*.torrent,d.set_custom1=/mnt/user/Video"
schedule = watch_directory_other,10,10,"load_start=/mnt/user/Junk/torrents/other/*.torrent,d.set_custom1=/mnt/user/Junk"

on_finished = move_complete,"execute=mv,-u,$d.get_base_path=,$d.get_custom1=.set_directory=$d.get_custom1="

 

The cool part is the schedule commands.  It'll auto-load torrent files and then move them to my proper user share when they complete.  This makes my rtorrent pretty much take care of itself.

Welcome to the world of Realtek  :'(

 

Just thought I'd add here -- this morning I built 2.6.26-rc8, and I also built the Realtek 8168 8.006.00 driver that's available from the Realtek web site.

 

The stock driver is not compatible with >=2.6.24 kernels.  I followed the instructions on from this http://ge.ubuntuforums.com/showthread.php?s=7cc61ba4831f00dae1a6ab56069d9a94&t=755002 thread to properly build it.  I manually applied the patch contained in one of the posts.

 

So far so good.  I've got rtorrent running and my network hasn't flaked out so far (it's been about 45 minutes).  It might be worth looking into using the Realtek r8168 driver for future versions of unRAID, rather than the buggy r8169 driver.

  • 1 month later...

Just thought I'd add here -- this morning I built 2.6.26-rc8, and I also built the Realtek 8168 8.006.00 driver that's available from the Realtek web site.

 

FYI, Realtek has released the 8168 8.008.00 driver: ftp://210.51.181.211/cn/nic/r8168-8.008.00.tar.bz2

 

This one compiles fine with kernels >= 2.6.24.

  • 3 years later...

First, install a complete Slackware development system.

1) Get the kernel source for 4.6.22.5 (see above post)

2) Copy the unRAID source mods

3) Get a config file... either from someone else or mod your own

4) Build new kernel and modules

5) uncompress bzroot filesystem from USB

6) copy new kernel and modules to uncompressed bzroot filesystem.

7) recompress new bzroot filesystem back to usb.

8) edit syslinux config on flash to give you boot option to run custom unRAID or standard.

I'm building a custom kernel for a old MB with some specififs drivers.

I need some linux advice for point 6 : copy new kernel and modules. Where is the new kernel located on my unraid development (linux 2.26.39.4-unRAID)? What files need to be copied?

Can someone point me in the right direction ?

Thx :)

If you are in the root directory of the linux kernel source, the kernel image is arch/x86/boot/bzImage (rename to bzimage)

 

Install the modules (make modules_install) and copy them to the expanded bzroot.  For completeness, copy the System.map and .config from the linux kernel root directory to the usr/src/linux dir in the bzroot.  Recompress bzroot.

 

Hopefully that's helpful.

the kernel image is arch/x86/boot/bzImage (rename to bzimage)

Thanx :)

This is exactly what I didn't know.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.