Compiling kernels is NOT scary on debian.
cd ~/tmp
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.5.tar.bz2
tar xvf linux-3.5.tar.bz2
cd linux-3.5/
cat /boot/config-`uname -r`>.config
make oldconfig
Question time! See below.
make-kpkg clean
time fakeroot make-kpkg -j5 --initrd --revision=3.5.0 --append-to-version=-amd64 kernel_image kernel_headers
This takes a LONG TIME. Change 5 to number of cores+1. 35 minutes with -j5 on a six core desktop.
mv ../*3.5.0*.deb .
sudo dpkg -i *.deb
And you're done.
Things to ponder in this version:
Tree-based hierarchical RCU leaf-level fanout value (RCU_FANOUT_LEAF) [16] (NEW
Cross Memory Support (CROSS_MEMORY_ATTACH) [Y/n/?] (NEW)
Enable frontswap to cache swap pages if tmem is present (FRONTSWAP) [N/y/?] (NEW)
Opportunistic sleep (PM_AUTOSLEEP) [N/y/?] (NEW)
User space wakeup sources interface (PM_WAKELOCKS) [N/y/?] (NEW)
"HMARK" target support (NETFILTER_XT_TARGET_HMARK) [N/m/?] (NEW)
Generic IEEE 802.15.4 Soft Networking Stack (mac802154) (MAC802154) [N/m/?] (NEW)
Controlled Delay AQM (CODEL) (NET_SCH_CODEL) [N/m/y/?] (NEW)
Fair Queue Controlled Delay AQM (FQ_CODEL) (NET_SCH_FQ_CODEL) [N/m/y/?] (NEW)
Bridge Loop Avoidance (BATMAN_ADV_BLA) [Y/n/?] (NEW)
NFC HCI implementation (NFC_HCI) [N/m/?] (NEW)
BMP085 digital pressure sensor on I2C (BMP085_I2C) [N/m/?] (NEW)
BMP085 digital pressure sensor on SPI (BMP085_SPI) [N/m/y/?] (NEW)
TCM_QLA2XXX fabric module for Qlogic 2xxx series target mode HBAs (TCM_QLA2XXX) [N/m/?] (NEW)
FireWire SBP-2 fabric module (SBP_TARGET) [N/m/?] (NEW)
PTP Hardware Clock (PHC) (IGB_PTP) [N/y/?] (NEW)
Intel(R) 10GbE PCI Express adapters HWMON support (IXGBE_HWMON) [Y/n/?] (NEW)
PTP Clock Support (IXGBE_PTP) [N/y/?] (NEW)
Data Center Bridging (DCB) Support (MLX4_EN_DCB) [Y/n/?] (NEW)
WIZnet devices (NET_VENDOR_WIZNET) [Y/n/?] (NEW)
WIZnet W5100 Ethernet support (WIZNET_W5100) [N/m/y/?] (NEW)
WIZnet W5300 Ethernet support (WIZNET_W5300) [N/m/y/?] (NEW)
TI Wireless LAN support (WL_TI) [N/y/?] (NEW)
Marvell WiFi-Ex Driver for USB8797 (MWIFIEX_USB) [N/m/?] (NEW)
Matrix keymap support library (INPUT_MATRIXKMAP) [N/m/y/?] (NEW)
LM8333 keypad chip (KEYBOARD_LM8333) [N/m/?] (NEW)
Wacom Tablet support (I2C) (TOUCHSCREEN_WACOM_I2C) [N/m/?] (NEW)
Intel ICH GPIO (GPIO_ICH) [N/m/y/?] (NEW)
Texas Instruments INA219, INA226 (SENSORS_INA2XX) [N/m/?] (NEW)
Intel Atom E6xx Watchdog (IE6XX_WDT) [N/m/y/?] (NEW)
LM3533 Lighting Power chip (MFD_LM3533) [N/m/?] (NEW)
Freescale MC13783 and MC13892 SPI interface (MFD_MC13XXX_SPI) [N/m/y/?] (NEW)
Freescale MC13892 I2C interface (MFD_MC13XXX_I2C) [N/m/?] (NEW)
Intel ICH LPC (LPC_ICH) [M/y/?] (NEW)
Afatech AF9035 DVB-T USB2.0 support (DVB_USB_AF9035) [N/m/?] (NEW)
AST server chips (DRM_AST) [N/m/?] (NEW)
Kernel modesetting driver for MGA G200 server engines (DRM_MGAG200) [N/m/?] (NEW)
Cirrus driver for QEMU emulated device (DRM_CIRRUS_QEMU) [N/m/?] (NEW)
AUO-K190X EPD controller support (FB_AUO_K190X) [N/m/y/?] (NEW)
Generic HID driver (HID_GENERIC) [M/n/?] (NEW)
Aureal (HID_AUREAL) [N/m/?] (NEW)
BCMA usb host driver (USB_HCD_BCMA) [N/m/?] (NEW)
SSB usb host driver (USB_HCD_SSB) [N/m/?] (NEW)
ChipIdea Highspeed Dual Role Controller (USB_CHIPIDEA) [N/m/?] (NEW)
USB Quatech Serial Driver for USB 2 devices (USB_SERIAL_QT2) [N/m/?] (NEW)
NXP ISP1301 USB transceiver support (USB_ISP1301) [N/m/?] (NEW)
USB Gadget Target Fabric Module (USB_GADGET_TARGET) [N/m/?] (NEW)
LED Transient Trigger (LEDS_TRIGGER_TRANSIENT) [N/m/y/?] (NEW)
Emulex One Connect HCA support (INFINIBAND_OCRDMA) [N/m/?] (NEW)
Comedi default initial asynchronous buffer size in KiB (COMEDI_DEFAULT_BUF_SIZE_KB) [2048] (NEW)
Comedi default maximum asynchronous buffer size in KiB (COMEDI_DEFAULT_BUF_MAXSIZE_KB) [20480] (NEW)
Amplicon PCI215 and PCI272 DIO board support (COMEDI_AMPLC_DIO200_PCI) [N/m/?] (NEW)
Amplicon PCI236 DIO board support (COMEDI_AMPLC_PC236_PCI) [N/m/?] (NEW)
Amplicon PCI263 relay board support (COMEDI_AMPLC_PC263_PCI) [N/m/?] (NEW)
DAS-08 PCI support (COMEDI_DAS08_PCI) [N/m/?] (NEW)
Configurable Composite Gadget (STAGING) (USB_G_CCG) [N/m/?] (NEW)
IndustryPack bus support (IPACK_BUS) [N/m/y/?] (NEW)
GCT GDM72xx WiMAX support (WIMAX_GDM72XX) [N/m/y/?] (NEW)
External Connector Class (extcon) support (EXTCON) [N/m/y/?] (NEW)
Memory Controller drivers (MEMORY) [N/y] (NEW)
Log panic/oops to a RAM buffer (PSTORE_RAM) [N/m/y/?] (NEW)
NFS client support for NFS version 2 (NFS_V2) [Y/n/?] (NEW)
Codepage macroman (NLS_MAC_ROMAN) [N/m/y/?] (NEW)
Codepage macceltic (NLS_MAC_CELTIC) [N/m/y/?] (NEW)
Codepage maccenteuro (NLS_MAC_CENTEURO) [N/m/y/?] (NEW)
Codepage maccroatian (NLS_MAC_CROATIAN) [N/m/y/?] (NEW)
Codepage maccyrillic (NLS_MAC_CYRILLIC) [N/m/y/?] (NEW)
Codepage macgaelic (NLS_MAC_GAELIC) [N/m/y/?] (NEW)
Codepage macgreek (NLS_MAC_GREEK) [N/m/y/?] (NEW)
Codepage maciceland (NLS_MAC_ICELAND) [N/m/y/?] (NEW)
Codepage macinuit (NLS_MAC_INUIT) [N/m/y/?] (NEW)
Codepage macromanian (NLS_MAC_ROMANIAN) [N/m/y/?] (NEW)
Codepage macturkish (NLS_MAC_TURKISH) [N/m/y/?] (NEW)
Generate readable assembler code (READABLE_ASM) [N/y/?] (NEW)
Enable uprobes-based dynamic events (UPROBE_EVENT) [N/y/?] (NEW)
JEDEC DDR data (DDR) [N/y/?] (NEW)
Links to this page:
http://srmulcahy.github.com/2012/12/24/debian-x230.html
http://stackoverflow.com/questions/13533307/installing-headers-for-3-5-kernel-in-debian-wheezy
Hi Lindqvist,
ReplyDeletethis is concerning you post regarding compiling kernel version 3.5 regarding the following step:
time fakeroot make-kpkg -j5 --initrd --revision=3.5.0 --append-to-version=-amd64 kernel_image kernel_headers
I am running a 32 bit machine .. so --append-to-version will be -i386 I gather? am I correct .. please advise by e-mail to shiv.brahmi@gmail.com.
Thank you.
Best Regards,
Dushyant
--append-to-version is just a string and can be anything -- so -x86 or -i386 are all fine.
DeleteSee here for cross compiling a 32 bit kernel on a 64 bit system: http://verahill.blogspot.com.au/2012/03/cross-compiling-eg-32-bit-binaries-on.html
Building on a 32 bit system should not require anything species. For older kernels you may run into the bug at the end of this post: http://verahill.blogspot.com.au/2012/02/debian-testing-building-your-own-linux.html
Works like a charm!
ReplyDeleteCompiled 3.5.5 yesterday, thanks a lot for this post!
Complied this today and worked great. The previous kernel still shows up in the GRUB on booting though. How best to go about getting rid of that?
ReplyDeleteKeep at least one 'stable' kernel around in case e.g. updates to udev breaks something.
DeleteTo remove kernels you can easily uninstall them using apt -- they are typically called something like
linux-image-{version}-{arch}
linux-headers-{version}-{arch}
although I think the repo versions of the kernel leaves out the -{arch} e.g. linux-headers-3.2.9 and linux-image-3.2.9
First of all, thank you for this. Second, after doing so, I lost VirtualBox support. Any idea how to get this back? I imagine I need to recompile, but I don't see it in the list of questions.
ReplyDeleteThanks!
If you compiled 3.5, try doing
Deletesudo /etc/init.d/vboxdrv setup
and everything should work.
If /etc/init.d/vboxdrv is missing, look here Item 4):
http://verahill.blogspot.com.au/2012/07/recently.html
If you compiled kernel 3.7.x then look here:
http://verahill.blogspot.com.au/2012/12/compiling-kernel-37-on-debian.html
i.e. you might have to install virtualbox from the virtualbox.org website.