|  | @@ -794,16 +794,46 @@ function install_shellcheck {
 | 
	
		
			
			| 794 | 794 |      apt-get -yq install shellcheck
 | 
	
		
			
			| 795 | 795 |  }
 | 
	
		
			
			| 796 | 796 |  
 | 
	
		
			
			| 797 |  | -function set_read_ahead {
 | 
	
		
			
			| 798 |  | -    # Setting this can significantly improve microSD read performance
 | 
	
		
			
			| 799 |  | -    read_ahead="$1"
 | 
	
		
			
			| 800 |  | -    if [ ! "$read_ahead" ]; then
 | 
	
		
			
			| 801 |  | -        read_ahead=4096
 | 
	
		
			
			| 802 |  | -    fi
 | 
	
		
			
			| 803 |  | -    if [ ! -f /sys/devices/virtual/bdi/179:0/read_ahead_kb ]; then
 | 
	
		
			
			| 804 |  | -        return
 | 
	
		
			
			| 805 |  | -    fi
 | 
	
		
			
			| 806 |  | -    echo -n "$read_ahead" > /sys/devices/virtual/bdi/179:0/read_ahead_kb
 | 
	
		
			
			|  | 797 | +function microsd_card_optimisations {
 | 
	
		
			
			|  | 798 | +    # These values can improve performance on microSD cards
 | 
	
		
			
			|  | 799 | +    if [ ! -d /etc/network/if-up.d ]; then
 | 
	
		
			
			|  | 800 | +        mkdir /etc/network/if-up.d
 | 
	
		
			
			|  | 801 | +    fi
 | 
	
		
			
			|  | 802 | +    printf '#!/bin/bash\n' > /usr/bin/enable_optimisations
 | 
	
		
			
			|  | 803 | +
 | 
	
		
			
			|  | 804 | +    if [ -f /sys/devices/virtual/bdi/179:0/read_ahead_kb ]; then
 | 
	
		
			
			|  | 805 | +        echo -n '4096' > /sys/devices/virtual/bdi/179:0/read_ahead_kb
 | 
	
		
			
			|  | 806 | +        echo "echo -n '4096' > /sys/devices/virtual/bdi/179:0/read_ahead_kb" >> /usr/bin/enable_optimisations
 | 
	
		
			
			|  | 807 | +    fi
 | 
	
		
			
			|  | 808 | +
 | 
	
		
			
			|  | 809 | +    if [ -f /proc/sys/vm/dirty_expire_centisecs ]; then
 | 
	
		
			
			|  | 810 | +        echo -n '100' > /proc/sys/vm/dirty_expire_centisecs
 | 
	
		
			
			|  | 811 | +        echo "echo -n '100' > /proc/sys/vm/dirty_expire_centisecs" >> /usr/bin/enable_optimisations
 | 
	
		
			
			|  | 812 | +    fi
 | 
	
		
			
			|  | 813 | +
 | 
	
		
			
			|  | 814 | +    if [ -f /proc/sys/vm/dirty_writeback_centisecs ]; then
 | 
	
		
			
			|  | 815 | +        echo -n '100' > /proc/sys/vm/dirty_writeback_centisecs
 | 
	
		
			
			|  | 816 | +        echo "echo -n '100' > /proc/sys/vm/dirty_writeback_centisecs" >> /usr/bin/enable_optimisations
 | 
	
		
			
			|  | 817 | +    fi
 | 
	
		
			
			|  | 818 | +
 | 
	
		
			
			|  | 819 | +    chmod +x /usr/bin/enable_optimisations
 | 
	
		
			
			|  | 820 | +
 | 
	
		
			
			|  | 821 | +    { echo '[Unit]';
 | 
	
		
			
			|  | 822 | +      echo "Description=${PROJECT_NAME} optimisations";
 | 
	
		
			
			|  | 823 | +      echo 'After=syslog.target';
 | 
	
		
			
			|  | 824 | +      echo 'After=network.target';
 | 
	
		
			
			|  | 825 | +      echo 'After=remote-fs.target';
 | 
	
		
			
			|  | 826 | +      echo '';
 | 
	
		
			
			|  | 827 | +      echo '[Service]';
 | 
	
		
			
			|  | 828 | +      echo 'Type=simple';
 | 
	
		
			
			|  | 829 | +      echo 'User=root';
 | 
	
		
			
			|  | 830 | +      echo 'Group=root';
 | 
	
		
			
			|  | 831 | +      echo 'WorkingDirectory=/root';
 | 
	
		
			
			|  | 832 | +      echo 'ExecStart=/usr/bin/enable_optimisations';
 | 
	
		
			
			|  | 833 | +      echo '';
 | 
	
		
			
			|  | 834 | +      echo '[Install]';
 | 
	
		
			
			|  | 835 | +      echo 'WantedBy=multi-user.target'; } > /etc/systemd/system/optimisations.service
 | 
	
		
			
			|  | 836 | +      systemctl enable optimisations
 | 
	
		
			
			| 807 | 837 |  }
 | 
	
		
			
			| 808 | 838 |  
 | 
	
		
			
			| 809 | 839 |  function setup_utils {
 | 
	
	
		
			
			|  | @@ -828,8 +858,8 @@ function setup_utils {
 | 
	
		
			
			| 828 | 858 |      function_check separate_tmp_filesystem
 | 
	
		
			
			| 829 | 859 |      separate_tmp_filesystem 150
 | 
	
		
			
			| 830 | 860 |  
 | 
	
		
			
			| 831 |  | -    function_check set_read_ahead
 | 
	
		
			
			| 832 |  | -    set_read_ahead 4096
 | 
	
		
			
			|  | 861 | +    function_check microsd_card_optimisations
 | 
	
		
			
			|  | 862 | +    microsd_card_optimisations
 | 
	
		
			
			| 833 | 863 |  
 | 
	
		
			
			| 834 | 864 |      function_check proc_filesystem_settings
 | 
	
		
			
			| 835 | 865 |      proc_filesystem_settings
 |