Advertisement
Guest User

Untitled

a guest
Dec 30th, 2014
572
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. # Create a temp directory for our work
  2. tempbuild=`mktemp -d`
  3. cd $tempbuild
  4.  
  5. # Determine kernel version (with and without Ubuntu-specific suffix)
  6. mykern=${1:-$(uname -r)}
  7. mykernver=linux-$(echo $mykern | cut -d'-' -f 1)
  8.  
  9. # Install necessary deps to build a kernel
  10. sudo apt-get build-dep -y --no-install-recommends linux-image-$mykern
  11.  
  12. # Grab Ubuntu kernel source
  13. wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.5.tar.xz
  14. tar -xJf linux-3.14.5.tar.xz
  15. cd linux-3.14.5
  16.  
  17. if [ -f drivers/platform/x86/chromeos_laptop.c ]; then
  18. platform_folder=x86
  19. elif [ -f drivers/platform/chrome/chromeos_laptop.c ]; then
  20. platform_folder=chrome
  21. fi
  22.  
  23. # Use Benson Leung's post-Pixel Chromebook patches:
  24. # https://patchwork.kernel.org/bundle/bleung/chromeos-laptop-deferring-and-haswell/
  25. for patch in 3078491 3078481 3074391 3074441 3074421 3074401 3074431 3074411; do
  26. wget -O - https://patchwork.kernel.org/patch/$patch/raw/ \
  27. | sed "s/drivers\/platform\/x86\/chromeos_laptop.c/drivers\/platform\/$platform_folder\/chromeos_laptop.c/g" \
  28. | patch -p1
  29. done
  30.  
  31. # Need this
  32. cp /usr/src/linux-headers-$mykern/Module.symvers .
  33.  
  34. # Prep tree
  35. cp /boot/config-$mykern ./.config
  36. make oldconfig
  37. make prepare
  38. make modules_prepare
  39.  
  40. # Build only the needed directories
  41. make SUBDIRS=drivers/platform/$platform_folder modules
  42. make SUBDIRS=drivers/i2c/busses modules
  43.  
  44. # switch to using our new chromeos_laptop.ko module
  45. # preserve old as .orig
  46. sudo mv /lib/modules/$mykern/kernel/drivers/platform/$platform_folder/chromeos_laptop.ko /lib/modules/$mykern/kernel/drivers/platform/$platform_folder/chromeos_laptop.ko.orig
  47. sudo cp drivers/platform/$platform_folder/chromeos_laptop.ko /lib/modules/$mykern/kernel/drivers/platform/$platform_folder/
  48.  
  49. # switch to using our new designware i2c modules
  50. # preserve old as .orig
  51. sudo mv /lib/modules/$mykern/kernel/drivers/i2c/busses/i2c-designware-core.ko /lib/modules/$mykern/kernel/drivers/i2c/busses/i2c-designware-core.ko.orig
  52. sudo mv /lib/modules/$mykern/kernel/drivers/i2c/busses/i2c-designware-pci.ko /lib/modules/$mykern/kernel/drivers/i2c/busses/i2c-designware-pci.ko.orig
  53. sudo mv /lib/modules/$mykern/kernel/drivers/i2c/busses/i2c-designware-platform.ko /lib/modules/$mykern/kernel/drivers/i2c/busses/i2c-designware-platform.ko.orig
  54. sudo cp drivers/i2c/busses/i2c-designware-*.ko /lib/modules/$mykern/kernel/drivers/i2c/busses/
  55. sudo depmod -a $mykern
  56. echo "Finished building Chromebook modules in $tempbuild. Reboot to use them."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement