Editing Kernel Power
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
- | + | =Kernel for Power Users= | |
- | + | ||
- | The | + | The enhanced kernel "kernel-power" is compatible with [[Maemo_5/PR1.2|PR1.2]], contain lots of additional features (IPv6, NAT etc) and bugfixes. The kernel can be installed via Application manager from the System section. |
+ | Installation of the customization package Kernel-Power-Settings is sufficient, as it depends on the kernel page. | ||
- | + | The custom kernel contains additional modules for IPv6, packet filtering, QoS, NAT, tunneling, kernel configuration, Wifi mesh networking, builtin ext3 for booting from other media, ext4, XFS, reiserfs, NTFS read support, ISO9660, UDF, CIFS, automounter, squashfs, unionfs, device mapper and dm-loop, cryptography, cryptoloop, EFI partitions, UTF8 codepages, mouse+joystick input, PPP, PPTP, serial support, USB/IP and generic USB device drivers, battery info, overclocking and kexec support. | |
- | [ | + | '''Note: This page is under construction and based on the [[Overclocking|overclocking/undervolting instructions]]. Hence the heavy bias to overclocking.''' |
- | + | For overclocking it includes a large set of possible frequencies (125MHz-1.15GHz) which you manually set and try out without flashing a new kernel. | |
+ | The defaults are set to the standard 250-600MHz range. You can also fine tine the voltages for your device for power-saving. Every device is different. | ||
+ | [http://talk.maemo.org/showthread.php?t=43420 talk.maemo.org: Discussion of the enhanced kernel] | ||
Changes between versions are announced on the [https://garage.maemo.org/news/?group_id=1528 garage page]. | Changes between versions are announced on the [https://garage.maemo.org/news/?group_id=1528 garage page]. | ||
- | == | + | == Installation of the kernel == |
- | '''Note:''' | + | '''Note:''' all commands on this page must be [[root access|run as root]] in [[terminal|X Terminal]] (install rootsh package and enter "sudo gainroot") |
- | + | === Installation of the [http://maemo.org/downloads/product/Maemo5/kernel-power-flasher/ stable kernel] from extras === | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | === | + | |
With this kernel you can change the frequency limits, the voltages and DSP frequencies online. It requires firmware [[Maemo 5/PR1.1|PR1.1]] or newer. | With this kernel you can change the frequency limits, the voltages and DSP frequencies online. It requires firmware [[Maemo 5/PR1.1|PR1.1]] or newer. | ||
# Install the package <code>[http://maemo.org/downloads/product/Maemo5/kernel-power-settings/ kernel-power-settings]</code> (section system in Application manager). It will automatically also install <code>kernel-power-flasher</code>. | # Install the package <code>[http://maemo.org/downloads/product/Maemo5/kernel-power-settings/ kernel-power-settings]</code> (section system in Application manager). It will automatically also install <code>kernel-power-flasher</code>. | ||
- | # | + | # shutdown and boot again. There's no need for reflashing etc. |
- | # | + | |
+ | [[#Configuring_the_kernel_settings_.28of_the_stable_version_from_extras.29|See below for configuration information]] | ||
- | === | + | === Installation of the [https://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/kernel-power-flasher/2.6.28-maemo32/ experimental kernel] from extras-devel === |
This kernel version contains additional experimental features and patches. | This kernel version contains additional experimental features and patches. | ||
+ | Changelogs are posted [https://garage.maemo.org/news/?group_id=1528 on Garage]. | ||
+ | # Install the package "Enhanced kernel for power users" (section system in HAM). | ||
+ | # shutdown and boot again. There's no need for reflashing etc. | ||
- | + | [[#Configuring_the_kernel_settings_.28of_the_experimental_version_from_extras-devel.29|See below for configuration information]] | |
- | + | === Verification of proper installation === | |
- | + | First verify, that the kernel is actually running: | |
- | === | + | uname -r |
- | First verify, that the kernel is actually running: | + | should return "2.6.28.10power-omap1" or "2.6.28.10power<version>-omap1" |
- | should return "2.6.28.10power<version>" | + | If it does not, you should reboot or try to install again |
- | If it does not, you should reboot or try to | + | apt-get install --reinstall -y kernel-power kernel-power-flasher |
+ | reboot, and test again. | ||
=== Upgrade from older versions (< maemo24) === | === Upgrade from older versions (< maemo24) === | ||
- | The kernel package was previously called | + | The kernel package was previously called kernel-flasher-maemo. |
- | If you have one of the older packages installed it you | + | Unfortunately Application Manager does not support package transitions. |
- | + | If you have one of the older packages installed it is recommended that you upgrade in X Terminal | |
- | apt-get install -y kernel-power-flasher | + | sudo gainroot |
- | apt-get remove kernel-flasher-maemo | + | apt-get install -y kernel-power-flasher |
- | + | apt-get remove kernel-flasher-maemo | |
If the new kernel still doesn't boot up, try | If the new kernel still doesn't boot up, try | ||
- | + | apt-get install --reinstall -y kernel-power kernel-power-flasher | |
- | Also try [http://talk.maemo.org/showpost.php?p=608343&postcount=2603 other hints] for | + | Also try [http://talk.maemo.org/showpost.php?p=608343&postcount=2603 other hints] for deinstalling the old package. |
- | Make sure you reset | + | Make sure you reset /etc/pmconfig to the defaults: |
- | + | # Power management configuration file | |
- | # Power management configuration file | + | enable_off_mode 1 |
- | enable_off_mode 1 | + | sleep_while_idle 1 |
- | sleep_while_idle 1 | + | sr_vdd1_autocomp 0 |
- | sr_vdd1_autocomp 0 | + | sr_vdd2_autocomp 0 |
- | sr_vdd2_autocomp 0 | + | clocks_off_while_idle 1 |
- | clocks_off_while_idle 1 | + | voltage_off_while_idle 1 |
- | voltage_off_while_idle 1 | + | scaling_governor ondemand |
- | scaling_governor ondemand | + | scaling_max_freq 600000 |
- | scaling_max_freq 600000 | + | scaling_min_freq 125000 |
- | scaling_min_freq 125000 | + | sleep_ind 1 |
- | sleep_ind 1 | + | |
- | + | ||
- | === | + | === Deinstallation === |
- | Do not try to | + | Do not try to deinstall the package in Application Manager! It does not work. |
- | + | ||
- | + | For all kernels the safest method for deinstallation is the following: | |
- | + | # make sure you have a working Internet connection (and possibly wait a little bit until the updates are downloaded) | |
- | + | # make sure the package rootsh (Section system) is installed | |
+ | # close Application manager | ||
+ | # execute the following in X-Terminal | ||
+ | sudo gainroot | ||
+ | apt-get install --reinstall -y kernel kernel-flasher | ||
+ | # if it finishes successfully (with "SIGTERM received" and "Image flashed successfully" messages) then you can continue with | ||
+ | apt-get remove -y kernel-power kernel-power-modules | ||
+ | # after successful deinstallation the comand "ls -l /lib/modules/current" should show | ||
+ | ... /lib/modules/current -> 2.6.28-omap1 | ||
+ | # shutdown (without USB cable or charger connected) and boot again | ||
+ | # your device should now be running the stock kernel | ||
- | # | + | If the device fails to boot or you have other problems, perform the deinstallation from PC with USB cable and flasher utility: |
- | + | # Make sure you have a version 28 or later from extras-testing installed (it fixes the broken /sbin/preinit) | |
- | # | + | # for older versions it is not guaranteed that this method will work without a complete reflash. |
- | # | + | # execute the following on your PC (see [[Updating_the_tablet_firmware|this]] for more details) |
- | + | flasher-3.5 -f --flash-only=kernel -R -F <firmware-image> | |
- | + | The firmware image file could be, for example, RX-51_2009SE_3.2010.02-8_PR_COMBINED_MR0_ARM.bin | |
- | + | This is only way of deinstallation with leaked release 1.2 firmware. | |
- | + | ||
- | + | ||
- | + | If you have the kernel from extras-testing (>v27), there is a "Deinstall kernel" application in your menu. | |
- | If you have | + | This applications is, however, still '''experimental''' (for >v27 it is more stable). Only use if have can fall back to reflashing |
- | This | + | the kernel using the flasher (see below) in case of problems. |
Read the instructions carefully when you start the deinstall application! | Read the instructions carefully when you start the deinstall application! | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
=== Upgrading to a new PR === | === Upgrading to a new PR === | ||
- | Before upgrading, always make a backup. There are two ways of upgrading the firmware to a new Nokia public release (PR): | + | Before upgrading, always make a backup. |
- | # [[ | + | There are two ways of upgrading the firmware to a new Nokia public release (PR): |
+ | # [[Updating_the_tablet_firmware|reflashing the complete firmware]] via flasher or NSU. This is safest way (especially for PR1.2). In this case you simply reinstall the kernel after the upgrade. The settings should be restored by the backup application. | ||
# Over The Air (OTA) upgrade: this upgrades only system components of your device so that you don't need to restore your settings or reinstall applications. see below | # Over The Air (OTA) upgrade: this upgrades only system components of your device so that you don't need to restore your settings or reinstall applications. see below | ||
OTA upgrade: | OTA upgrade: | ||
- | Disable extras-devel and extras-testing. DIsable autodisconnect if is installed. | + | Disable extras-devel and extras-testing. DIsable autodisconnect if is installed. |
- | + | If the PR does not deliver a new kernel (PR1.1.1) then simply upgrade. | |
+ | If it provides a new kernel (PR1.1 and PR1.2) then there are again two options: | ||
+ | # first [http://wiki.maemo.org/Kernel_Power#Deinstallation deinstall] the power-user kernel, upgrade to the PR, and then install the power-user kernel after the successful upgrade again. If you had kernel-power-settings installed, you need to reinstall it too. Your settings should not be affected by the removal and reinstallation. | ||
+ | # (currently untested) perform the upgrade and reinstall the enhanced kernel with the following commands: | ||
+ | sudo gainroot | ||
apt-get install --reinstall kernel-power kernel-power-modules kernel-power-flasher | apt-get install --reinstall kernel-power kernel-power-modules kernel-power-flasher | ||
=== Holding a specific kernel version === | === Holding a specific kernel version === | ||
If your manually installed kernel should be not upgraded to the one in extras* try [http://talk.maemo.org/showpost.php?p=603915&postcount=2063 this]: | If your manually installed kernel should be not upgraded to the one in extras* try [http://talk.maemo.org/showpost.php?p=603915&postcount=2063 this]: | ||
- | + | echo kernel-power-flasher hold | dpkg --set-selections | |
- | + | echo kernel-power hold | dpkg --set-selections | |
- | echo kernel-power-flasher hold | dpkg --set-selections | + | echo kernel-power-modules hold | dpkg --set-selections |
- | echo kernel-power hold | dpkg --set-selections | + | |
- | echo kernel-power-modules hold | dpkg --set-selections | + | |
- | + | ||
to unlock the version: | to unlock the version: | ||
+ | echo kernel-power-flasher install | dpkg --set-selections | ||
+ | echo kernel-power install | dpkg --set-selections | ||
+ | echo kernel-power-modules install | dpkg --set-selections | ||
- | + | == Configuring the kernel settings (of the stable version from extras) == | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | These instructions refer to kernel-power-flasher v24 and kernel-power-settings 0.3. | |
+ | This kernel makes it possible to dynamically change the maximum frequency up to 1.15GHz (supported frequencies are 125,250,500,550,600,700,750,805,850,900,950,1000,1100,1150MHz). | ||
+ | WARNING: Overclocking may damage your device and is at your own risk! It may void your warranty and destroy your data. You have been warned. | ||
- | + | For more details on voltages read [[Overclocking#Voltage_tables]]. | |
- | + | ||
- | + | ||
- | + | ||
- | + | Make sure the packages ''kernel-power-settings'' and ''rootsh'' are installed. | |
+ | '''All commands need to be run as root user.''' | ||
+ | If you are normal user in X Terminal enter "sudo gainroot". | ||
- | + | 1) to try a configuration (you can replace "ideal" with [[#Kernels.27_specifications | default, lv, ulv, xlv]] or specify a file you created based on the template /usr/share/kernel-power-settings/default ) | |
+ | /usr/sbin/kernel-load /usr/share/kernel-power-settings/ideal | ||
+ | '''Note''': do ''NOT'' modify the files in /usr/share/kernel-power-settings/! | ||
+ | see '''Creating your own configuration:'' below. | ||
- | + | 2) to permanently install a default configuration | |
+ | rm -f /etc/default/kernel-power | ||
+ | ln -s /usr/share/kernel-power-settings/ideal /etc/default/kernel-power | ||
+ | 3) or your own config | ||
+ | rm -f /etc/default/kernel-power | ||
+ | cp <filename> /etc/default/kernel-power | ||
+ | 4) and to immediately apply it | ||
+ | /usr/sbin/kernel-load | ||
- | + | '''For beginners:''' first reboot. then try 1) and check whether the device is stable. then do 2). | |
- | ''' | + | '''Creating your own configuration''' |
- | and | + | 5) copy the template to your mydocs (when not in mass storage mode) |
+ | cp /usr/share/kernel-power-settings/ideal /home/user/MyDocs/kernel.txt | ||
+ | 6) edit the file ''/home/user/MyDocs/kernel.txt''. The defaults are | ||
+ | #UP_THRESHOLD=75 | ||
+ | #SAMPLING_RATE=150000 | ||
+ | VDD1_OPPS_VSEL="30 30 38 48 54 48 60 60 60 60 60 60 60 72 72" | ||
+ | DSP_OPPS_RATE="90 90 180 360 400 430 430 430 430 500 500 500 500 520 520" | ||
+ | MIN_FREQ=250000 | ||
+ | MAX_FREQ=599000 | ||
+ | SMARTREFLEX_VDD1=0 | ||
+ | SMARTREFLEX_VDD2=0 | ||
+ | For changing the frequency range change MIN_FREQ/MAX_FREQ (see "Temporary change of the frequency limits" below ). | ||
+ | Either edit the file with an editor on your device (e.g., leafpad) | ||
+ | or USB mount it to edit it on the PC. unmount and unplug USB. | ||
+ | After editing load the configuration with | ||
+ | /usr/sbin/kernel-load /home/user/MyDocs/kernel.txt | ||
+ | and repeat 6) until you're happy. | ||
- | + | 7) to permanently install this new configuration | |
- | + | rm -f /etc/default/kernel-power | |
- | + | cp /home/user/MyDocs/kernel.txt /etc/default/kernel-power | |
+ | /usr/sbin/kernel-load | ||
- | + | 8) to reset the device to the defaults use | |
- | + | rm -f /etc/default/kernel-power | |
- | + | /usr/sbin/kernel-load /usr/share/kernel-power-settings/default | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | '''Note''': the package automatically detects whether a certain misconfiguration has caused '''reboot loop.''' | |
- | + | It your device reboots twice within 5 minutes, it will load the default settings (250-600Mhz) so that you can fix or remove the invalid configuration file. | |
- | + | This also means that, when for some reason you manually reboot too quickly (<5min) your configuration will not be loaded. | |
- | + | To load it nonetheless run after booting | |
+ | /usr/sbin/kernel-load | ||
- | + | === Temporary change of the frequency limits === | |
- | + | sudo gainroot | |
- | + | echo 250000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq | |
- | + | echo 599000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq | |
- | + | cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq | |
- | + | cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq | |
- | + | The last line shows which values were actually set. | |
+ | To set 125MHz use 124999, for 600MHz 599999, for everthing else x000 with x=MHz. | ||
+ | This setting takes effect immediately and is cleared with the next reboot. | ||
- | + | === Permanent configuration of the frequency limits === | |
+ | WARNING: Permanent overclocking is very dangerous! | ||
- | + | Install kernel-power-settings and follow the above instructions. | |
- | + | == Configuring the kernel settings (of the experimental version from extras-devel) == | |
- | + | These instructions refer to kernel-power-flasher >=v25 and kernel-power-settings >=0.5. | |
- | + | ||
- | + | ||
- | + | The instructions are not yet available but read [http://talk.maemo.org/showpost.php?p=638620&postcount=3392 this for the features] | |
- | + | and [http://talk.maemo.org/showpost.php?p=641064&postcount=3412 this mini-tutorial] in the meantime. | |
- | + | ||
- | == | + | == Battery == |
+ | In kernels version >=maemo20 you can read out the current battery info: | ||
+ | modprobe bq27x00_battery | ||
+ | cat /sys/class/power_supply/bq27200-0/capacity | ||
+ | cat /sys/class/power_supply/bq27200-0/voltage_now | ||
+ | cat /sys/class/power_supply/bq27200-0/current_now | ||
+ | cat /sys/class/power_supply/bq27200-0/temp | ||
- | + | *'capacity' value in percentage of battery level. | |
+ | *'voltage_now' value in mV of battery voltage level. | ||
+ | *'current_now' value in mA of battery current consumption. (???) | ||
+ | *'temp' value in degrees C of battery temperature. | ||
- | + | To remove this kernel module use: | |
- | + | ||
- | + | rmmod bq27x00_battery | |
- | + | or reboot. | |
- | + | ||
- | + | With kernel-power-settings >=0.6 the module can be loaded on boot. | |
+ | Just execute this once: | ||
+ | sudo gainroot | ||
+ | echo bq27x00_battery >> /etc/modules | ||
- | + | == JoikuSpot == | |
+ | seems to work. read [http://talk.maemo.org/showpost.php?p=653966&postcount=3592 this post]. | ||
- | + | = Remarks = | |
- | + | ||
- | + | # even if 125Mhz is disabled, the telephone app will always try to set the minimum freq. to 125Mhz after a phone call, but it is ignored unless you enable 125Mhz. | |
- | + | # if you enable 125MHz also set "echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load" [http://talk.maemo.org/showpost.php?p=602687&postcount=185 hint] | |
- | + | # [http://talk.maemo.org/showpost.php?p=597703&postcount=141 the 125MHz issue] | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | # even if | + | |
- | # if you enable | + | |
- | # [http://talk.maemo.org/showpost.php?p=597703&postcount=141 the | + | |
# Installing another version of the enhanced kernel will just overwrite the older version. The stock kernel modules are preserved so that you can simply reflash the stock kernel via USB. | # Installing another version of the enhanced kernel will just overwrite the older version. The stock kernel modules are preserved so that you can simply reflash the stock kernel via USB. | ||
- | # The kernel supports | + | # If you for some reason get errors like this during removal or installation "rm: cannot remove '/lib/modules/2.6.28.10maemo-lv-omap1/modules.*': No such file or directory".try this [http://talk.maemo.org/showpost.php?p=603938&postcount=196 workaround]. There was a bug in one of the early LV kernels but it should be fixed in more recent versions. |
- | + | # This kernel will not conflict with the future PR1.2 upgrade. The upgrade will, however, overwrite this kernel and you'll have to install it again. | |
+ | # The screen calibration in settings crashes immediately. It is a known bug in the calibration app, not in the kernel. It's mentioned in the kernel package description and is due to additional evdev (joystick,mouse) support. Just calibrate once with the stock kernel before you install the fully featured kernel. | ||
+ | # The kernel supports 125MHz but this frequency is [http://talk.maemo.org/showpost.php?p=617488&postcount=3095 disabled by default] in avoid_frequencies. In version <25, it is enabled by specifying "124999", in later versions it is disabled in ''/sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies'' and can be enabled with | ||
+ | echo > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies | ||
+ | similarily, individual frequencies can be disabled in >=v25 | ||
+ | echo 125000 250000 750000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies | ||
[[Category:Power users]] | [[Category:Power users]] | ||
[[Category:N900]] | [[Category:N900]] |
Learn more about Contributing to the wiki.