Advertisement
Guest User

cros-haswell-modules-archlinux.sh

a guest
Dec 9th, 2013
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. #!/bin/bash
  2. # Modified for Arch Linux from ChrUbuntu's cros-haswell-modules.sh
  3. # https://googledrive.com/host/0B0YvUuHHn3MndlNDbXhPRlB2eFE/cros-haswell-modules.sh
  4.  
  5. set -e
  6.  
  7. # Create a temp directory for our work
  8. tempbuild=`mktemp -d`
  9. cd $tempbuild
  10.  
  11. # Determine kernel version
  12. archkernver=$(uname -r)
  13. kernver=$(uname -r | cut -d'-' -f 1)
  14.  
  15. # Install necessary deps to build a kernel
  16. echo "Installing linux-headers..."
  17. sudo pacman -S --needed linux-headers
  18.  
  19. # Grab kernel source
  20. echo "Fetching kernel sources..."
  21. wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-${kernver}.tar.gz
  22. echo "Extracting kernel sources..."
  23. tar xfvz linux-${kernver}.tar.gz
  24. cd linux-${kernver}
  25.  
  26. # Use Benson Leung's post-Pixel Chromebook patches:
  27. # https://patchwork.kernel.org/bundle/bleung/chromeos-laptop-deferring-and-haswell/
  28. echo "Applying Chromebook Haswell Patches..."
  29. for patch in 3078491 3078481 3074391 3074441 3074421 3074401 3074431 3074411; do
  30. wget -O - https://patchwork.kernel.org/patch/$patch/raw/ | patch -p1
  31. done
  32.  
  33. # Need this
  34. cp /usr/src/linux-${archkernver}/Module.symvers .
  35.  
  36. # Prep tree
  37. zcat /proc/config.gz > ./.config
  38. make oldconfig
  39. make prepare
  40. make modules_prepare
  41.  
  42. echo "Building relevant modules..."
  43. # Build only the needed directories
  44. make SUBDIRS=drivers/platform/x86 modules
  45. make SUBDIRS=drivers/i2c/busses modules
  46.  
  47. echo "Installing relevant modules..."
  48. # switch to using our new chromeos_laptop.ko module
  49. # preserve old as .orig
  50. sudo mv /lib/modules/$archkernver/kernel/drivers/platform/x86/chromeos_laptop.ko.gz /lib/modules/$archkernver/kernel/drivers/platform/x86/chromeos_laptop.ko.gz.orig
  51. sudo cp drivers/platform/x86/chromeos_laptop.ko /lib/modules/$archkernver/kernel/drivers/platform/x86/
  52. sudo gzip /lib/modules/$archkernver/kernel/drivers/platform/x86/chromeos_laptop.ko
  53.  
  54. # switch to using our new designware i2c modules
  55. # preserve old as .orig
  56. sudo mv /lib/modules/$archkernver/kernel/drivers/i2c/busses/i2c-designware-core.ko.gz /lib/modules/$archkernver/kernel/drivers/i2c/busses/i2c-designware-core.ko.gz.orig
  57. sudo mv /lib/modules/$archkernver/kernel/drivers/i2c/busses/i2c-designware-pci.ko.gz /lib/modules/$archkernver/kernel/drivers/i2c/busses/i2c-designware-pci.ko.gz.orig
  58. sudo cp drivers/i2c/busses/i2c-designware-*.ko /lib/modules/$archkernver/kernel/drivers/i2c/busses/
  59. sudo gzip /lib/modules/$archkernver/kernel/drivers/i2c/busses/i2c-designware-*.ko
  60. sudo depmod -a $archkernver
  61.  
  62. echo "Installing xf86-input-synaptics..."
  63. sudo pacman -S --needed xf86-input-synaptics
  64.  
  65. echo "Reboot to use your touchpad!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement