Permanently change maximum CPU frequency

Ok, the problem was at bios_limit.

To start, override any BIOS limitations by setting ignore_ppc to 1:

echo 1 > /sys/module/processor/parameters/ignore_ppc

Then, change CPU scaling_max_freq for all cores using this script [pay attention to core's numbers! In my case quad-core, core's numbers: 0, 1, 2, 3]:

for x in /sys/devices/system/cpu/cpu[0-3]/cpufreq/;do 
  echo 2400000 > $x/scaling_max_freq
done

Source: http://blog.patshead.com/2013/04/my-bios-is-limiting-my-cpu-clock-speed.html

Now, since you can't edit bios_limit files, you have to force kernel to ignore it.

Edit /etc/default/grub (you need to do this using root privilege) and change

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

to

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash processor.ignore_ppc=1"

then run:

sudo update-grub

and reboot.

Source: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/856233 Comment Nº 24.

Now the CPU frequencies are at 2.4GHz, as desired, while using AC power.

/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  = ondemand
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq  =   800000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  =  2400000 [kHz]

/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor  = ondemand
/sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq  =   800000 [kHz]
/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq  =  2400000 [kHz]

/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor  = ondemand
/sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq  =   800000 [kHz]
/sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq  =  2400000 [kHz]

/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor  = ondemand
/sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq  =   800000 [kHz]
/sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq  =  2400000 [kHz]