Advertisement
Guest User

Untitled

a guest
Apr 10th, 2014
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.90 KB | None | 0 0
  1. #!/bin/bash
  2. # Modified for Arch Linux from ChrUbuntu's cros-haswell-modules.sh
  3. # for kernel 3.14
  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. kernver='3.14'
  15.  
  16. # Install necessary deps to build a kernel
  17. echo "Installing linux-headers..."
  18. sudo pacman -S --needed linux-headers
  19.  
  20. # Grab kernel source
  21. echo "Fetching kernel sources..."
  22. wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-${kernver}.tar.gz
  23. echo "Extracting kernel sources..."
  24. tar xfvz linux-${kernver}.tar.gz
  25. cd linux-${kernver}
  26.  
  27. # Use Benson Leung's post-Pixel Chromebook patches: # 3074391 3074441 3074421
  28. # https://patchwork.kernel.org/bundle/bleung/chromeos-laptop-deferring-and-haswell/ # 3078491 3078481 3074391 3074441 3074421 3074401 3074431 3074411
  29. echo "Applying Chromebook Haswell Patches..."
  30. for patch in 3078491 3078481 3074401 3074431 3074411; do
  31. wget -O - https://patchwork.kernel.org/patch/$patch/raw/ | sed 's/drivers\/platform\/x86\/chromeos_laptop.c/drivers\/platform\/chrome\/chromeos_laptop.c/g'| patch -p1
  32. done
  33.  
  34.  
  35. # fetch the chromeos_laptop and atmel maxtouch source code
  36. # Copy made from chromium.googlesource.com chromeos-3.8 branch
  37. # https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/refs/heads/chromeos-3.8
  38. wget https://googledrive.com/host/0BxMvXgjEztvAbEdYM1o0ck5rOVE --output-document=patch_atmel_mxt_ts.c
  39. wget https://googledrive.com/host/0BxMvXgjEztvAdVBjQUljYWtiR2c --output-document=patch_chromeos_laptop.c
  40.  
  41. # copy source files into kernel tree replacing existing Ubuntu source
  42. #cp ./patch_atmel_mxt_ts.c drivers/input/touchscreen/atmel_mxt_ts.c
  43. sed -e 's/INIT_COMPLETION(/reinit_completion(\&/g' ./patch_atmel_mxt_ts.c > drivers/input/touchscreen/atmel_mxt_ts.c
  44. cp ./patch_chromeos_laptop.c drivers/platform/chrome/chromeos_laptop.c
  45.  
  46.  
  47. # Need this
  48. cp /usr/lib/modules/${archkernver}/build/Module.symvers .
  49.  
  50. # Prep tree
  51. zcat /proc/config.gz > ./.config
  52. make oldconfig
  53. make prepare
  54. make modules_prepare
  55.  
  56. echo "Building relevant modules..."
  57. # Build only the needed directories
  58. make SUBDIRS=drivers/platform/chrome modules
  59. make SUBDIRS=drivers/i2c/busses modules
  60. make SUBDIRS=drivers/input/touchscreen modules
  61.  
  62. echo "Installing relevant modules..."
  63. # switch to using our new chromeos_laptop.ko module
  64. # preserve old as .orig
  65. chros_lap='/lib/modules/$archkernver/kernel/drivers/platform/chrome/chromeos_laptop.ko.gz'
  66. if [ -f $chros_lap ];
  67. then
  68. sudo mv $chros_lap ${chros_lap}.orig
  69. fi
  70. sudo cp drivers/platform/chrome/chromeos_laptop.ko /lib/modules/$archkernver/kernel/drivers/platform/chrome/
  71. sudo gzip /lib/modules/$archkernver/kernel/drivers/platform/chrome/chromeos_laptop.ko
  72.  
  73. # switch to using our new designware i2c modules
  74. # preserve old as .orig
  75. 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
  76. 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
  77. sudo cp drivers/i2c/busses/i2c-designware-*.ko /lib/modules/$archkernver/kernel/drivers/i2c/busses/
  78. sudo gzip /lib/modules/$archkernver/kernel/drivers/i2c/busses/i2c-designware-*.ko
  79.  
  80. # switch to using our new atmel_mxt_ts.ko module
  81. # preserve old as .orig
  82. sudo mv /lib/modules/$archkernver/kernel/drivers/input/touchscreen/atmel_mxt_ts.ko.gz /lib/modules/$archkernver/kernel/drivers/input/touchscreen/atmel_mxt_ts.ko.gz.orig
  83. sudo cp drivers/input/touchscreen/atmel_mxt_ts.ko /lib/modules/$archkernver/kernel/drivers/input/touchscreen/
  84. sudo gzip /lib/modules/$archkernver/kernel/drivers/input/touchscreen/atmel_mxt_ts.ko
  85.  
  86. sudo depmod -a $archkernver
  87.  
  88. echo "Installing xf86-input-synaptics..."
  89. sudo pacman -S --needed xf86-input-synaptics
  90.  
  91. echo "Reboot to use your touchpad!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement