aboutsummaryrefslogblamecommitdiff
path: root/scripts/hostclass/laptop/20-laptop
blob: ce4a06556cda329059ba74157cc6b0542e38a154 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11





                                                                                  




                                                 


                          

                                       
 
                                 
                                                                                         

                                     
                                               


                                    
                                













                                   


                                     



                                                
 


                          



                                                               






                                                               
#!/bin/sh

# Set USB power savings
usbconfig | awk -F: '{ print $1 }' | xargs -rtn1 -I% usbconfig -d % power_save ||:
install_file /etc/rc.local

# Enable kernel module for Android USB tethering.
load_kernel_module if_urndis
set_loader_conf if_urndis_load=YES
sysrc -v ifconfig_ue0='DHCP'

# Install laptop packages.
pkg install -y networkmgr

# Increase ZFS timeout to save battery.
set_loader_conf vfs.zfs.txg.timeout=10

# Set intel power saving options.
# For disable_power_well=0, see: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229190
if [ "$graphics_type" = intel ]; then
  set_loader_conf \
    compat.linuxkpi.i915_disable_power_well=0 \
    compat.linuxkpi.i915_enable_dc=2
fi

# Load appropriate WiFi drivers.
case ${wireless_type:-} in
  iwm*)
    set_loader_conf \
      if_iwm_load=YES \
      "${wireless_type}fw_load=YES"

    load_kernel_module \
      if_iwm \
      "${wireless_type}fw"

    sysrc -v wlans_iwm0='wlan0'
    ;;
esac

# Enable power saving for sound card.
set_sysctl hw.snd.latency=7

# Configure wireless card.
sysrc -v \
  create_args_wlan0='country US regdomain FCC' \
  ifconfig_wlan0="WPA DHCP powersave"

# Hardware-specific fixes.
case ${laptop_type:-} in
  thinkpad)
    # Load the IBM thinkpad kernel module for hardware buttons.
    load_kernel_module acpi_ibm
    set_loader_conf acpi_ibm_load=YES

    # Set brightness using function keys.
    set_sysctl dev.acpi_ibm.0.handlerevents='0x10 0x11'
    install_file -m 0555 /usr/local/libexec/thinkpad-brightness
    install_file -m 0644 /etc/devd/thinkpad-brightness.conf
    service devd restart
    ;;
esac