Kernel Power

m (Configuring the kernel speed/voltage settings)
(wikify slightly)
Line 1: Line 1:
-
The enhanced kernel "kernel-power" is compatible with [[Maemo_5/PR1.2|PR1.2]] and  [[Maemo_5/PR1.3|PR1.3]], contain lots of additional features (IPv6, NAT etc) and bugfixes. The kernel can be installed via Application manager from the System section.
+
The enhanced kernel "kernel-power" is compatible with [[Maemo_5/PR1.2|PR1.2]] and  [[Maemo_5/PR1.3|PR1.3]], 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.
-
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.
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.'''
+
'''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 (125 MHz-1.15 GHz) which you manually set and try out without flashing a new kernel. The defaults are set to the standard 250-600 MHz range. You can also fine tune the voltages for your device for power-saving. Every device is different.
-
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 tune 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]
[http://talk.maemo.org/showthread.php?t=43420 talk.maemo.org: Discussion of the enhanced kernel]
Line 27: Line 24:
This kernel version contains additional experimental features and patches.
This kernel version contains additional experimental features and patches.
-
Just enable the [[Extras-testing]] catalouge and install according to [[#Installation_of_the_stable_kernel_from_extras|these instructions]].
+
Just enable the [[Extras-testing]] catalogue and install according to [[#Installation_of_the_stable_kernel_from_extras|these instructions]].
Please follow the [[Help_testing_software|QA checklist]] and vote for the package.
Please follow the [[Help_testing_software|QA checklist]] and vote for the package.
Line 34: Line 31:
First verify, that the kernel is actually running:
First verify, that the kernel is actually running:
  uname -r
  uname -r
-
should return "2.6.28.10power-omap1" or  "2.6.28.10power<version>"
+
should return "2.6.28.10power-omap1" or  "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 install again
+
  apt-get install --reinstall -y kernel-power kernel-power-flasher
  apt-get install --reinstall -y kernel-power kernel-power-flasher
reboot, and test again.
reboot, and test again.
=== Upgrade from older versions (< maemo24)  ===
=== Upgrade from older versions (< maemo24)  ===
-
The kernel package was previously called kernel-flasher-maemo.
+
The kernel package was previously called <code>kernel-flasher-maemo</code>. Unfortunately, Application Manager does not support package transitions, i.e. installation of the new version leads to conflicts with <code>kernel-maemo</code> and <code>kernel-modules-maemo</code>.
-
Unfortunately Application Manager does not support package transitions, i.e. installation of the new version leads to conflicts with kernel-maemo and kernel-modules-maemo.
+
If you have one of the older packages installed it you need to upgrade in X Terminal
If you have one of the older packages installed it you need to upgrade in X Terminal
  sudo gainroot
  sudo gainroot
Line 50: Line 45:
Also try [http://talk.maemo.org/showpost.php?p=608343&postcount=2603 other hints] for deinstalling the old package.
Also try [http://talk.maemo.org/showpost.php?p=608343&postcount=2603 other hints] for deinstalling the old package.
-
Make sure you reset /etc/pmconfig to the defaults:
+
Make sure you reset <code>/etc/pmconfig</code> to the defaults:
-
# Power management configuration file
+
<pre>
-
enable_off_mode 1
+
# Power management configuration file
-
sleep_while_idle 1
+
enable_off_mode 1
-
sr_vdd1_autocomp 0
+
sleep_while_idle 1
-
sr_vdd2_autocomp 0
+
sr_vdd1_autocomp 0
-
clocks_off_while_idle 1
+
sr_vdd2_autocomp 0
-
voltage_off_while_idle 1
+
clocks_off_while_idle 1
-
scaling_governor ondemand
+
voltage_off_while_idle 1
-
scaling_max_freq 600000
+
scaling_governor ondemand
-
scaling_min_freq 125000
+
scaling_max_freq 600000
-
sleep_ind 1
+
scaling_min_freq 125000
 +
sleep_ind 1
 +
</pre>
=== Deinstallation ===
=== Deinstallation ===
Line 67: Line 64:
For all kernels the safest method for deinstallation is the following:
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)
+
<ol>
-
# make sure the package rootsh (Section system) is installed
+
<li>
-
# close Application manager
+
make sure you have a working Internet connection (and possibly wait a little bit until the updates are downloaded)
-
# execute the following in X-Terminal
+
</li>
-
sudo gainroot
+
<li>
-
apt-get install --reinstall -y kernel kernel-flasher
+
make sure the package rootsh (Section system) is installed
-
# if it finishes successfully (with "SIGTERM received" and "Image flashed successfully" messages) then you can continue with
+
</li>
-
apt-get remove -y kernel-power kernel-power-modules
+
<li>
-
# after successful deinstallation the comand "ls -l /lib/modules/current" should show
+
close Application manager
-
... /lib/modules/current -> 2.6.28-omap1
+
</li>
-
# shutdown (without USB cable or charger connected) and boot again
+
<li>
-
# your device should now be running the stock kernel
+
execute the following in X-Terminal
 +
<pre>
 +
sudo gainroot
 +
apt-get install --reinstall -y kernel kernel-flasher
 +
</pre>
 +
</li>
 +
<li>
 +
if it finishes successfully (with "SIGTERM received" and "Image flashed successfully" messages) then you can continue with <pre>apt-get remove -y kernel-power kernel-power-modules</pre>
 +
</li>
 +
<li>
 +
after successful deinstallation the command:
 +
<pre>ls -l /lib/modules/current</pre>
 +
should show:
 +
<pre>... /lib/modules/current -> 2.6.28-omap1</pre>
 +
</li>
 +
<li>
 +
shutdown (without USB cable or charger connected) and boot again
 +
</li>
 +
<li>
 +
your device should now be running the stock kernel
 +
</li>
 +
</ol>
If the device fails to boot or you have other problems, perform the deinstallation from PC with USB cable and flasher utility:
If the device fails to boot or you have other problems, perform the deinstallation from PC with USB cable and flasher utility:
Line 84: Line 102:
# for older versions it is not guaranteed that this method will work without a complete reflash.
# for older versions it is not guaranteed that this method will work without a complete reflash.
# make sure your battery is properly charged (if it fails, charge your battery)
# make sure your battery is properly charged (if it fails, charge your battery)
-
# execute the following on your PC (see [[Updating the firmware|this]] for more details)
+
# execute the following on your PC (see [[Updating the firmware|this]] for more details)<pre>flasher-3.5 -f --flash-only=kernel -R -F <firmware-image></pre>
-
flasher-3.5 -f --flash-only=kernel -R -F <firmware-image>
+
The firmware image file could be, for example, <code>RX-51_2009SE_3.2010.02-8_PR_COMBINED_MR0_ARM.bin</code>. This is only way of deinstallation with leaked release 1.2 firmware.
-
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 a recent kernel (>v27), there is a "Deinstall kernel" application in your menu.
If you have a recent kernel (>v27), there is a "Deinstall kernel" application in your menu.
-
This applications is, however, still '''experimental''' (for >v27 it is more stable). Only use if have can fall back to reflashing
+
This applications is, however, still '''experimental''' (for >v27 it is more stable). Only use if have can fall back to reflashing the kernel using the flasher (see below) in case of problems.
-
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.
+
Before upgrading, always make a backup. There are two ways of upgrading the firmware to a new Nokia public release (PR):
-
There are two ways of upgrading the firmware to a new Nokia public release (PR):
+
# [[Updating the 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.
# [[Updating the 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
Line 108: Line 122:
=== 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
+
<pre>
-
echo kernel-power-modules hold | dpkg --set-selections
+
echo kernel-power-flasher hold | dpkg --set-selections
 +
echo kernel-power hold | dpkg --set-selections
 +
echo kernel-power-modules hold | dpkg --set-selections
 +
</pre>
to unlock the version:
to unlock the version:
-
echo kernel-power-flasher install | dpkg --set-selections
+
 
-
echo kernel-power install | dpkg --set-selections
+
<pre>
-
echo kernel-power-modules install | dpkg --set-selections
+
echo kernel-power-flasher install | dpkg --set-selections
 +
echo kernel-power install | dpkg --set-selections
 +
echo kernel-power-modules install | dpkg --set-selections
 +
</pre>
=== Issues after multiboot or Nitdroid installation ===
=== Issues after multiboot or Nitdroid installation ===
-
Multiboot changes the boot process and might not load kernel-power properly.
+
Multiboot changes the boot process and might not load kernel-power properly. This is not a kernel-power problem. Please read the multiboot threads or Nitdroid forums. For versions >=v39 typically  
-
This is not a kernel-power problem.
+
-
Please read the multiboot threads or Nitdroid forums.
+
-
For versions >=v39 typically  
+
  apt-get install kernel-power-bootimg
  apt-get install kernel-power-bootimg
  apt-get install --reinstall multiboot-kernel-power
  apt-get install --reinstall multiboot-kernel-power
adds kernel-power to your boot menu.
adds kernel-power to your boot menu.
-
= Features =
+
== Features ==
-
== Configuring the kernel speed/voltage settings ==
+
=== Configuring the kernel speed/voltage settings ===
-
The following instructions require the kernel-power-flasher >=v27 and kernel-power-settings >=0.8.
+
The following instructions require the <code>kernel-power-flasher >=v27</code> and <code>kernel-power-settings >=0.8</code>.
If you upgraded from the old stable version the old settings should still work and be loaded during boot.
If you upgraded from the old stable version the old settings should still work and be loaded during boot.
Line 148: Line 165:
=== Use of kernel-config ===
=== Use of kernel-config ===
-
'''In the following "kernel-config" must be replaced by either "sudo kernel-config" or "/usr/sbin/kernel-config".'''
+
'''In the following "kernel-config" must be replaced by either "<code>sudo kernel-config</code>" or "<code>/usr/sbin/kernel-config</code>".''' If you get an error message "command not found" then you have an old version of kernel-power-settings installed. Use:
-
It you get an error message "command not found" then you have an old version of kernel-power-settings installed.
+
dpkg -l kernel-power-settings
-
"dpkg -l kernel-power-settings" shows the installed version number.
+
to show the installed version number.
-
To list the current configuration of the kernel use
+
To list the current configuration of the kernel use:
  kernel-config show
  kernel-config show
If you have loaded an old config, or changed the current settings manually or using [http://talk.maemo.org/showthread.php?t=50067 CPUfreqUI] you can save the current settings with  
If you have loaded an old config, or changed the current settings manually or using [http://talk.maemo.org/showthread.php?t=50067 CPUfreqUI] you can save the current settings with  
  kernel-config save myconfig
  kernel-config save myconfig
-
this will automatically save it in /home/user/.kernel/myconfig and create the directory if necessary (replace myconfig with any name you like).
+
this will automatically save it in <code>/home/user/.kernel/myconfig</code> and create the directory if necessary (replace myconfig with any name you like). To save it somewhere else (why would you?) use the absolute path.
-
To save it somewhere else (why would you?) use the absolute path.
+
A configuration (here myconfig) is loaded with
A configuration (here myconfig) is loaded with
  kernel-config load myconfig
  kernel-config load myconfig
-
If the filename is not absolute (e.g. "./myconfig") it searches for the file in the current dir, /home/user/.kernel and /usr/share/kernel-power-settings/
+
If the filename is not absolute (e.g. "<code>./myconfig</code>") it searches for the file in the current dir, <code>/home/user/.kernel</code> and <code>/usr/share/kernel-power-settings/</code>. Without a file name it loads <code>/etc/default/kernel-power</code>, or <code>/usr/share/kernel-power-settings/default</code>. Do NOT modify the files in <code>/usr/share/kernel-power-settings</code>. They are templates. The template names are: default, lv, ulv, xlv, ideal, starving.
-
Without a file name it loads /etc/default/kernel-power, or /usr/share/kernel-power-settings/default
+
-
Do NOT modify the files in /usr/share/kernel-power-settings. They are templates.
+
-
The template names are: default, lv, ulv, xlv, ideal, starving.
+
  kernel-config default myconfig
  kernel-config default myconfig
-
copies the configuration file to /etc/default/kernel-power (or symlinks if it is a template file from /usr/share/kernel-power-settings).
+
copies the configuration file to <code>/etc/default/kernel-power</code> (or symlinks if it is a template file from <code>/usr/share/kernel-power-settings</code>). If you do not specify a filename, the current settings are saved in <code>/etc/default/kernel-power</code>. These settings are then loaded during boot.
-
If you do not specify a filename, the current settings are saved in /etc/default/kernel-power.
+
-
These settings are then loaded during boot.
+
  kernel-config limits 250 600
  kernel-config limits 250 600
sets the limits to [min,max].
sets the limits to [min,max].
-
If you use "-" for a frequency, the current value is used. For example, "kernel-config limits - 850" only changes the upper limit to 850Mhz.
+
If you use "-" for a frequency, the current value is used. For example, "kernel-config limits - 850" only changes the upper limit to 850 Mhz.
  kernel-config lock freq volt dsp
  kernel-config lock freq volt dsp
Line 181: Line 192:
=== Configuration files ===
=== Configuration files ===
-
You can edit /etc/default/kernel-power or the files in /home/user/.kernel/.
+
You can edit <code>/etc/default/kernel-power</code> or the files in <code>/home/user/.kernel/</code>.
The content of the default template is:
The content of the default template is:
-
# minimum frequency to use
 
-
MINFREQ=250
 
-
# maximum frequency to use
 
-
MAXFREQ=600
 
-
# list of frequency configurations: each "frequency:volt,dsprate"
 
-
FREQS="0:30,90 125:30,90 250:38,180 500:48,360 550:54,400 600:60,430 700:60,430 750:60,430 805:60,430 850:60,500 900:60,500 950:60,500 1000:60,500 1100:72,520 1150:72,520"
 
-
SMARTREFLEX_VDD1=0
 
-
SMARTREFLEX_VDD2=0
 
-
GOVERNOR=ondemand
 
-
UP_THRESHOLD=95
 
-
SAMPLING_RATE=300000
 
-
IGNORE_NICE_LOAD=0
 
-
POWERSAVE_BIAS=0
 
-
available frequencies not listed in FREQS as well as frequencies below MINFREQ are avoided.
+
<pre>
-
This means when you save a profile, all frequencies below MINFREQ will not be saved in FREQS!
+
# minimum frequency to use
 +
MINFREQ=250
 +
# maximum frequency to use
 +
MAXFREQ=600
 +
# list of frequency configurations: each "frequency:volt,dsprate"
 +
FREQS="0:30,90 125:30,90 250:38,180 500:48,360 550:54,400 600:60,430 700:60,430 750:60,430 805:60,430 850:60,500 900:60,500 950:60,500 1000:60,500 1100:72,520 1150:72,520"
 +
SMARTREFLEX_VDD1=0
 +
SMARTREFLEX_VDD2=0
 +
GOVERNOR=ondemand
 +
UP_THRESHOLD=95
 +
SAMPLING_RATE=300000
 +
IGNORE_NICE_LOAD=0
 +
POWERSAVE_BIAS=0
 +
</pre>
 +
 
 +
available frequencies not listed in FREQS as well as frequencies below MINFREQ are avoided. This means when you save a profile, all frequencies below MINFREQ will not be saved in FREQS!
=== The boot sequence ===
=== The boot sequence ===
-
The kernel settings are only loaded if you had a normal reboot or shutdown but not after a crash.
+
The kernel settings are only loaded if you had a normal reboot or shutdown but not after a crash. In that case the file <code>/etc/kernel-power/.notloaded</code> is created
-
In that case the file /etc/kernel-power/.notloaded is created
+
and a notification will be shown after booting. The settings will be loaded at the next boot again unless it crashes again.
-
and a notification will be shown after booting.
+
-
The settings will be loaded at the next boot again unless it crashes again.
+
== Configuring the kernel speed/voltage settings (of the obsolete version 24) ==
== Configuring the kernel speed/voltage settings (of the obsolete version 24) ==
-
These instructions refer to the '''obsolete''' kernel-power-flasher v24 and kernel-power-settings 0.3.
+
These instructions refer to the '''obsolete''' <code>kernel-power-flasher</code> v24 and kernel-power-settings 0.3.
Some remarks for version v24:
Some remarks for version v24:
Line 216: Line 227:
  echo blacklist mousedev > /etc/modprobe.d/blacklist  
  echo blacklist mousedev > /etc/modprobe.d/blacklist  
-
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).
+
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,1150 MHz). 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.
-
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]].
For more details on voltages read [[Overclocking#Voltage_tables]].
-
Make sure the packages ''kernel-power-settings'' and ''rootsh'' are installed.
+
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".
-
'''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 )
+
<ol>
-
/usr/sbin/kernel-load /usr/share/kernel-power-settings/ideal
+
<li>
-
'''Note''': do ''NOT'' modify the files in /usr/share/kernel-power-settings/!
+
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 <code>/usr/share/kernel-power-settings/default</code> )
-
see '''Creating your own configuration:'' below.
+
<pre>
-
 
+
/usr/sbin/kernel-load /usr/share/kernel-power-settings/ideal
-
2) to permanently install a default configuration
+
</pre>
-
rm -f /etc/default/kernel-power
+
'''Note''': do ''NOT'' modify the files in <code>/usr/share/kernel-power-settings/</code>! see '''Creating your own configuration:'' below.
-
ln -s /usr/share/kernel-power-settings/ideal /etc/default/kernel-power
+
</li>
-
3) or your own config
+
<li>
-
rm -f /etc/default/kernel-power
+
to permanently install a default configuration
-
cp <filename> /etc/default/kernel-power
+
<pre>
-
4) and to immediately apply it
+
rm -f /etc/default/kernel-power
-
/usr/sbin/kernel-load
+
ln -s /usr/share/kernel-power-settings/ideal /etc/default/kernel-power
 +
</pre>
 +
</li>
 +
<li>
 +
or your own config
 +
<pre>
 +
rm -f /etc/default/kernel-power
 +
cp <filename> /etc/default/kernel-power
 +
</pre>
 +
</li>
 +
<li>
 +
and to immediately apply it
 +
<pre>
 +
/usr/sbin/kernel-load
 +
</pre>
'''For beginners:''' first reboot. then try 1) and check whether the device is stable. then do 2).
'''For beginners:''' first reboot. then try 1) and check whether the device is stable. then do 2).
'''Creating your own configuration'''
'''Creating your own configuration'''
-
5) copy the template to your mydocs (when not in mass storage mode)
+
</li>
-
cp /usr/share/kernel-power-settings/ideal /home/user/MyDocs/kernel.txt
+
<li>
-
6) edit the file ''/home/user/MyDocs/kernel.txt''. The defaults are
+
copy the template to your mydocs (when not in mass storage mode)
-
#UP_THRESHOLD=75  
+
<pre>
-
#SAMPLING_RATE=150000
+
cp /usr/share/kernel-power-settings/ideal /home/user/MyDocs/kernel.txt
-
VDD1_OPPS_VSEL="30 30 38 48 54 48 60 60 60 60 60 60 60 72 72"
+
</pre>
-
DSP_OPPS_RATE="90 90 180 360 400 430 430 430 430 500 500 500 500 520 520"
+
</li>
-
MIN_FREQ=250000
+
<li>
-
MAX_FREQ=599000
+
edit the file ''<code>/home/user/MyDocs/kernel.txt</code>''. The defaults are
-
SMARTREFLEX_VDD1=0
+
<pre>
-
SMARTREFLEX_VDD2=0
+
#UP_THRESHOLD=75  
-
For changing the frequency range change MIN_FREQ/MAX_FREQ (see "Temporary change of the frequency limits" below ).
+
#SAMPLING_RATE=150000
-
Either edit the file with an editor on your device (e.g., leafpad)
+
VDD1_OPPS_VSEL="30 30 38 48 54 48 60 60 60 60 60 60 60 72 72"
-
or USB mount it to edit it on the PC. unmount and unplug USB.
+
DSP_OPPS_RATE="90 90 180 360 400 430 430 430 430 500 500 500 500 520 520"
-
After editing load the configuration with
+
MIN_FREQ=250000
-
/usr/sbin/kernel-load /home/user/MyDocs/kernel.txt
+
MAX_FREQ=599000
 +
SMARTREFLEX_VDD1=0
 +
SMARTREFLEX_VDD2=0
 +
</pre>
 +
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:
 +
<pre>
 +
/usr/sbin/kernel-load /home/user/MyDocs/kernel.txt
 +
</pre>
and repeat 6) until you're happy.
and repeat 6) until you're happy.
 +
</li>
 +
<li>
 +
to permanently install this new configuration
 +
<pre>
 +
rm -f /etc/default/kernel-power
 +
cp /home/user/MyDocs/kernel.txt  /etc/default/kernel-power
 +
/usr/sbin/kernel-load
 +
</pre>
 +
</li>
 +
<li>
 +
to reset the device to the defaults use:
 +
<pre>
 +
rm -f /etc/default/kernel-power
 +
/usr/sbin/kernel-load /usr/share/kernel-power-settings/default
 +
</pre>
 +
</li>
 +
</ol>
-
7) to permanently install this new configuration
+
'''Note''': the package automatically detects whether a certain misconfiguration has caused '''reboot loop.''' If your device reboots twice within 5 minutes, it will load the default settings (250-600 Mhz) so that you can fix or remove the invalid configuration file. This also means that, when for some reason you manually reboot too quickly (<5 min) your configuration will not be loaded. To load it nonetheless run after booting:
-
rm -f /etc/default/kernel-power
+
-
cp /home/user/MyDocs/kernel.txt  /etc/default/kernel-power
+
  /usr/sbin/kernel-load
  /usr/sbin/kernel-load
-
8) to reset the device to the defaults use
+
=== Temporary change of the frequency limits ===
-
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.'''
+
<pre>
-
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.
+
sudo gainroot
-
This also means that, when for some reason you manually reboot too quickly (<5min) your configuration will not be loaded.
+
echo 250000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
-
To load it nonetheless run after booting
+
echo 599000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
-
/usr/sbin/kernel-load
+
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
-
 
+
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
-
=== Temporary change of the frequency limits ===
+
</pre>
-
sudo gainroot
+
The last line shows which values were actually set. To set 125 MHz use 124999, for 600 MHz 599999, for everthing else x000 with x=MHz. This setting takes effect immediately and is cleared with the next reboot.
-
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 ===
=== Permanent configuration of the frequency limits ===
Line 292: Line 328:
== Battery ==
== Battery ==
In kernels version >=maemo20 you can read out the current battery info:
In kernels version >=maemo20 you can read out the current battery info:
-
modprobe bq27x00_battery
+
 
-
cat /sys/class/power_supply/bq27200-0/capacity
+
<pre>
-
cat /sys/class/power_supply/bq27200-0/voltage_now
+
modprobe bq27x00_battery
-
cat /sys/class/power_supply/bq27200-0/current_now
+
cat /sys/class/power_supply/bq27200-0/capacity
-
cat /sys/class/power_supply/bq27200-0/temp
+
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
 +
</pre>
*'capacity' value in percentage of battery level.
*'capacity' value in percentage of battery level.
Line 309: Line 348:
or reboot.
or reboot.
-
With kernel-power-settings >=0.6 the module can be loaded on boot.
+
With kernel-power-settings >=0.6 the module can be loaded on boot. Just execute this once:
-
Just execute this once:
+
  sudo gainroot
  sudo gainroot
  echo bq27x00_battery >> /etc/modules
  echo bq27x00_battery >> /etc/modules
Line 370: Line 408:
  sudo gainroot
  sudo gainroot
  echo 0 > /etc/kernel-power/force_fsck
  echo 0 > /etc/kernel-power/force_fsck
-
disables it only for the next boot.
+
disables it only for the next boot. If you reset or reboot the device during fsck, it will not fsck (only) during the next boot. All messages are logged to <code>/etc/kernel-power/pre-mount.log</code>
-
If you reset or reboot the device during fsck, it will not fsck (only) during the next boot.
+
-
All messages are logged to /etc/kernel-power/pre-mount.log
+
== IPv6 ==  
== IPv6 ==  
-
IPv6 support is enabled and many users are successfully using it.
+
IPv6 support is enabled and many users are successfully using it. Note, however, not all applications are IPv6 compatible.
-
Note, however, not all applications are IPv6 compatible.
+
So far, it has been successfully used with Chromium and Firefox out of the box.  To run with the MicroB browser, you need to change one of the settings.
So far, it has been successfully used with Chromium and Firefox out of the box.  To run with the MicroB browser, you need to change one of the settings.
Line 398: Line 433:
You might want to repartition your eMMC or SD card with [[Repartitioning_the_flash]].
You might want to repartition your eMMC or SD card with [[Repartitioning_the_flash]].
-
= Remarks =
+
== 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.
+
# even if 125 Mhz is disabled, the telephone app will always try to set the minimum freq. to 125 Mhz after a phone call, but it is ignored unless you enable 125 Mhz.
-
# 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]
+
# if you enable 125 MHz also set  "<code>echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load</code>" [http://talk.maemo.org/showpost.php?p=602687&postcount=185 hint]
-
# [http://talk.maemo.org/showpost.php?p=597703&postcount=141 the 125MHz issue]
+
# [http://talk.maemo.org/showpost.php?p=597703&postcount=141 the 125 MHz issue]
# 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 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
+
# The kernel supports 125 MHz 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 ''<code>/sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies</code>'' and can be enabled with: <pre>echo > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies</pre>similarily, individual frequencies can be disabled in >=v25:<pre>echo 125000 250000 750000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies</pre>
-
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]]

Revision as of 13:49, 17 January 2011

The enhanced kernel "kernel-power" is compatible with PR1.2 and PR1.3, 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/undervolting instructions. Hence the heavy bias to overclocking. For overclocking it includes a large set of possible frequencies (125 MHz-1.15 GHz) which you manually set and try out without flashing a new kernel. The defaults are set to the standard 250-600 MHz range. You can also fine tune the voltages for your device for power-saving. Every device is different.

talk.maemo.org: Discussion of the enhanced kernel

Changes between versions are announced on the garage page.

Contents

Installation of the kernel

Note: all commands on this page must be run as root in X Terminal (install rootsh package and enter "sudo gainroot")

Installation of the stable kernel from extras

With this kernel you can change the frequency limits, the voltages and DSP frequencies online. It requires firmware PR1.1 or newer.

  1. Install the package kernel-power-settings (section system in Application manager). It will automatically also install kernel-power-flasher.
  2. shutdown and boot again. There's no need for reflashing etc.

See below for configuration information

Installation of the testing kernel from extras-testing

This kernel version contains additional experimental features and patches.

Just enable the Extras-testing catalogue and install according to these instructions.

Please follow the QA checklist and vote for the package.

Verification of proper installation

First verify, that the kernel is actually running:

uname -r

should return "2.6.28.10power-omap1" or "2.6.28.10power<version>". If it does not, you should reboot or try to install again

apt-get install --reinstall -y kernel-power kernel-power-flasher

reboot, and test again.

Upgrade from older versions (< maemo24)

The kernel package was previously called kernel-flasher-maemo. Unfortunately, Application Manager does not support package transitions, i.e. installation of the new version leads to conflicts with kernel-maemo and kernel-modules-maemo. If you have one of the older packages installed it you need to upgrade in X Terminal

sudo gainroot
apt-get install -y kernel-power-flasher
apt-get remove kernel-flasher-maemo

If the new kernel still doesn't boot up, try

apt-get install --reinstall -y kernel-power kernel-power-flasher

Also try other hints for deinstalling the old package.

Make sure you reset /etc/pmconfig to the defaults:

# Power management configuration file
enable_off_mode 1
sleep_while_idle 1
sr_vdd1_autocomp 0
sr_vdd2_autocomp 0
clocks_off_while_idle 1
voltage_off_while_idle 1
scaling_governor ondemand
scaling_max_freq 600000
scaling_min_freq 125000
sleep_ind 1

Deinstallation

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:

  1. make sure you have a working Internet connection (and possibly wait a little bit until the updates are downloaded)
  2. make sure the package rootsh (Section system) is installed
  3. close Application manager
  4. execute the following in X-Terminal
    sudo gainroot
    apt-get install --reinstall -y kernel kernel-flasher
    
  5. 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
  6. after successful deinstallation the command:
    ls -l /lib/modules/current

    should show:

    ... /lib/modules/current -> 2.6.28-omap1
  7. shutdown (without USB cable or charger connected) and boot again
  8. 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:

  1. make sure you have a version 28 or later installed (it fixes the broken /sbin/preinit)
  2. for older versions it is not guaranteed that this method will work without a complete reflash.
  3. make sure your battery is properly charged (if it fails, charge your battery)
  4. execute the following on your PC (see 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 a recent kernel (>v27), there is a "Deinstall kernel" application in your menu. This applications is, however, still experimental (for >v27 it is more stable). Only use if have can fall back to reflashing the kernel using the flasher (see below) in case of problems. Read the instructions carefully when you start the deinstall application!

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):

  1. 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.
  2. 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: Disable extras-devel and extras-testing. DIsable autodisconnect if is installed. Perform the upgrade. If the PR does not deliver a new kernel (PR1.1.1) then you're done. If it provides a new kernel (PR1.1 and PR1.2) then you need to reinstall the enhanced kernel with the following commands:

sudo gainroot
apt-get install --reinstall kernel-power kernel-power-modules kernel-power-flasher

Holding a specific kernel version

If your manually installed kernel should be not upgraded to the one in extras* try this:

echo kernel-power-flasher hold | dpkg --set-selections
echo kernel-power hold | dpkg --set-selections
echo kernel-power-modules hold | dpkg --set-selections

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

Issues after multiboot or Nitdroid installation

Multiboot changes the boot process and might not load kernel-power properly. This is not a kernel-power problem. Please read the multiboot threads or Nitdroid forums. For versions >=v39 typically

apt-get install kernel-power-bootimg
apt-get install --reinstall multiboot-kernel-power

adds kernel-power to your boot menu.

Features

Configuring the kernel speed/voltage settings

The following instructions require the kernel-power-flasher >=v27 and kernel-power-settings >=0.8.

If you upgraded from the old stable version the old settings should still work and be loaded during boot.

Basic, Conservative Undervolting/overclocking

After installing the power kernel and verifying it is installed, make sure you have rootsh installed and have backed up your data to an external storage device and type

sudo kernel-config load ideal

This will load the ideal template, which has these undervolted settings. These are stable on most N900s, but be sure to test by playing back some videos and doing some web browsing. Make sure your device is stable at all the frequencies! Then, type

sudo kernel-config default ideal

and you will have the ideal undervoltage/overclock settings as standard that persist through reboots. Until you type that, your settings will default to standard after a reboot.

Use of kernel-config

In the following "kernel-config" must be replaced by either "sudo kernel-config" or "/usr/sbin/kernel-config". If you get an error message "command not found" then you have an old version of kernel-power-settings installed. Use:

dpkg -l kernel-power-settings

to show the installed version number.

To list the current configuration of the kernel use:

kernel-config show

If you have loaded an old config, or changed the current settings manually or using CPUfreqUI you can save the current settings with

kernel-config save myconfig

this will automatically save it in /home/user/.kernel/myconfig and create the directory if necessary (replace myconfig with any name you like). To save it somewhere else (why would you?) use the absolute path.

A configuration (here myconfig) is loaded with

kernel-config load myconfig

If the filename is not absolute (e.g. "./myconfig") it searches for the file in the current dir, /home/user/.kernel and /usr/share/kernel-power-settings/. Without a file name it loads /etc/default/kernel-power, or /usr/share/kernel-power-settings/default. Do NOT modify the files in /usr/share/kernel-power-settings. They are templates. The template names are: default, lv, ulv, xlv, ideal, starving.

kernel-config default myconfig

copies the configuration file to /etc/default/kernel-power (or symlinks if it is a template file from /usr/share/kernel-power-settings). If you do not specify a filename, the current settings are saved in /etc/default/kernel-power. These settings are then loaded during boot.

kernel-config limits 250 600

sets the limits to [min,max]. If you use "-" for a frequency, the current value is used. For example, "kernel-config limits - 850" only changes the upper limit to 850 Mhz.

kernel-config lock freq volt dsp

(e.g. 500 48 400) can be used to test voltage and dsp settings with a certain frequency. It overwrites the current settings for that frequency and locks the CPU to only that frequency until you run "kernel-config unlock" to unlock it.

Configuration files

You can edit /etc/default/kernel-power or the files in /home/user/.kernel/. The content of the default template is:

# minimum frequency to use
MINFREQ=250
# maximum frequency to use
MAXFREQ=600
# list of frequency configurations: each "frequency:volt,dsprate"
FREQS="0:30,90 125:30,90 250:38,180 500:48,360 550:54,400 600:60,430 700:60,430 750:60,430 805:60,430 850:60,500 900:60,500 950:60,500 1000:60,500 1100:72,520 1150:72,520"
SMARTREFLEX_VDD1=0
SMARTREFLEX_VDD2=0
GOVERNOR=ondemand
UP_THRESHOLD=95
SAMPLING_RATE=300000
IGNORE_NICE_LOAD=0
POWERSAVE_BIAS=0

available frequencies not listed in FREQS as well as frequencies below MINFREQ are avoided. This means when you save a profile, all frequencies below MINFREQ will not be saved in FREQS!

The boot sequence

The kernel settings are only loaded if you had a normal reboot or shutdown but not after a crash. In that case the file /etc/kernel-power/.notloaded is created and a notification will be shown after booting. The settings will be loaded at the next boot again unless it crashes again.

Configuring the kernel speed/voltage settings (of the obsolete version 24)

These instructions refer to the obsolete kernel-power-flasher v24 and kernel-power-settings 0.3.

Some remarks for version v24:

  1. 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 workaround. There was a bug in one of the early LV kernels but it should be fixed in more recent versions.
  2. The screen calibration in settings crashes immediately with v24. 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. Alternatively run the following commands and reboot
sudo gainroot
echo blacklist mousedev > /etc/modprobe.d/blacklist 

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,1150 MHz). 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 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

  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. If your device reboots twice within 5 minutes, it will load the default settings (250-600 Mhz) so that you can fix or remove the invalid configuration file. This also means that, when for some reason you manually reboot too quickly (<5 min) 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 125 MHz use 124999, for 600 MHz 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.

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 microA 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

Mobile hotspot

all necessary modules are included. read this for more details.

JoikuSpot

seems to work. read this post.

Update: it doesn't work for me (recent version of Joikuspot and Maemo), ICMP and DNS resolving work OK, but TCP connections are completely freezed...If it works for you, let us know.

CIFS Support

You can now mount a network drive using Microsoft's CIFS protocol. To do so you need to do the following:

1) Share a folder on your Windows PC, with the latest versions of Windows you will have to create a user account with a password to share a specific folder that is not the Public Library.

2) Create a folder for the mount, pressumably on your /home/users/MyDocs folder, so that you could access your network drive through the file manager.

3) Mount the folder on your device by typing the following into xterm under root:

mount -t cifs //netbiosname/sharename /media/sharename -o user=winusername,pass=winpassword,ip=destip,direct

Working example:

mount -t cifs //KOPC/Users/Public /home/users/MyDocs/Share -o user=lilo,pass=1234,ip=192.168.2.2,direct

kexec (booting MeeGo and other kernels)

all necessary kexec patches are included. read [1] and this post for MeeGo support.

boot options

There is a separate file /etc/default/kernel-boot for extra boot options. It requires kernel-power-settings >= 0.11 and is disabled by default. These two options are experimental and may brick your device! Just install the template with the following commands and edit it (by default the options are disabled)

sudo gainroot
cp /usr/share/kernel-power-settings/boot /etc/default/kernel-boot

The default template looks like this

# start USB networking and sshd early during boot
EARLY_SSH=0
# fsck of /home partition before mounting?
# 1=if necessary, force=always check
FSCK_HOME=0

file system check and repair of /home, premount scripts

see boot options for enabling this feature. The following operations are performed before mounting /home:

  1. If you have a script (e.g. for repartitiong) called /etc/kernel-power/pre-mount.once it will be executed once and then moved away.
  2. if FSCK_HOME is enabled the /home partition (first ext3 on eMMC) will be fscked on boot.

Alternatively

sudo gainroot
echo 1 > /etc/kernel-power/force_fsck

should check it only during next boot.

sudo gainroot
echo 0 > /etc/kernel-power/force_fsck

disables it only for the next boot. If you reset or reboot the device during fsck, it will not fsck (only) during the next boot. All messages are logged to /etc/kernel-power/pre-mount.log

IPv6

IPv6 support is enabled and many users are successfully using it. Note, however, not all applications are IPv6 compatible.

So far, it has been successfully used with Chromium and Firefox out of the box. To run with the MicroB browser, you need to change one of the settings.

The setting is 'network.dns.disableIPv6' in about:config. When set to false, IPv6 just works when the phone has IPv6 connectivity.

IPv6 has also been used successfully with ssh and sshd.

Please share additional experiences here.

PPTP

tutorial

Kismet

tutorial and TMO thread

other filesystems

the kernel includes support for many alternative filesystem (incl. ext4 bugfixes and large files). You might want to repartition your eMMC or SD card with Repartitioning_the_flash.

Remarks

  1. even if 125 Mhz is disabled, the telephone app will always try to set the minimum freq. to 125 Mhz after a phone call, but it is ignored unless you enable 125 Mhz.
  2. if you enable 125 MHz also set "echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load" hint
  3. the 125 MHz issue
  4. 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.
  5. The kernel supports 125 MHz but this frequency is 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