{"id":254,"date":"2011-01-11T10:09:52","date_gmt":"2011-01-11T09:09:52","guid":{"rendered":"https:\/\/thebc.ch\/blog\/?p=254"},"modified":"2013-02-01T13:11:11","modified_gmt":"2013-02-01T12:11:11","slug":"nokia-n900","status":"publish","type":"post","link":"https:\/\/thebc.ch\/blog\/?p=254","title":{"rendered":"Nokia N900"},"content":{"rendered":"<p><a href=\"https:\/\/thebc.ch\/blog\/254\/nokia-n900\/n900\/\" rel=\"attachment wp-att-569\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-569\" title=\"N900\" src=\"http:\/\/thebc.ch\/upload\/2011\/01\/N900.jpg\" alt=\"\" width=\"450\" height=\"340\" srcset=\"https:\/\/thebc.ch\/upload\/2011\/01\/N900.jpg 450w, https:\/\/thebc.ch\/upload\/2011\/01\/N900-300x226.jpg 300w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/a><\/p>\n<div id=\"mw-pages\">\n<div class='toc toc'>\n<h2>Contents<\/h2>\n<ul class='toc-odd level-1'>\n\t\t<ul class='toc-even level-2'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Kernel\">Kernel<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#sbinpreinit\">\/sbin\/preinit<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Contents\">Contents<\/a>\n\t\t\t\t<ul class='toc-odd level-3'>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Restore_the_original_default_configuration\">Restore the original default configuration<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Edit_the_configuration_file\">Edit the configuration file<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Include_your_changes_for_compilation\">Include your changes for compilation<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Compile_the_kernel\">Compile the kernel<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Flash_the_kernel\">Flash the kernel<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n<\/ul>\n\t\t\t<li>\n\t\t\t\t<a href=\"#N900_Initial_Setup\">N900 Initial Setup<\/a>\n\t\t\t\t<ul class='toc-even level-2'>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#First_things_first\">First things first<\/a>\n\t\t\t\t\t\t<ul class='toc-odd level-3'>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<a href=\"#Add_repositories\">Add repositories<\/a>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<a href=\"#Install_mandatory_software\">Install mandatory software<\/a>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Contents_1\">Contents<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Introduction\">Introduction<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Enter_build-env\">Enter build-env<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Download_bootchart\">Download bootchart<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Modifying_Bootchart-Scripts\">Modifying Bootchart-Scripts<\/a>\n\t\t\t\t\t\t<ul class='toc-odd level-3'>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<a href=\"#sleep_vs._usleep\">sleep vs. usleep<\/a>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<a href=\"#Bash_variable_manipulation\">Bash variable manipulation<\/a>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<a href=\"#Include_configuration\">Include configuration<\/a>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<a href=\"#Insert_exit_process\">Insert exit process<\/a>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<a href=\"#Force_tmpfs_creation\">Force tmpfs creation<\/a>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Installing_files_on_N900\">Installing files on N900<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Rebooting_the_N900\">Rebooting the N900<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Results\">Results<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t<li>\n\t\t\t\t<a href=\"#N900_Repositories\">N900 Repositories<\/a>\n\t\t\t\t<ul class='toc-even level-2'>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a href=\"#Contents_2\">Contents<\/a>\n\t\t\t\t\t\t<ul class='toc-odd level-3'>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<a href=\"#Supported\">Supported<\/a>\n\t\t\t\t\t\t\t\t<ul class='toc-even level-4'>\n\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"#extras\">extras<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"#maemo.org_sdk_tools\">maemo.org sdk tools<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<a href=\"#Un_Supported\">Un Supported<\/a>\n\t\t\t\t\t\t\t\t<ul class='toc-even level-4'>\n\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"#extras-testing\">extras-testing<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a href=\"#extras-devel\">extras-devel<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n<\/ul>\n<\/ul>\n<\/ul>\n<\/ul>\n<\/div>\n<div class='toc-end'>&nbsp;<\/div>\n<h1 id=\"firstHeading\">N900 Boot Process<\/h1>\n<p><a id=\"Kernel\" name=\"Kernel\"><\/a><\/p>\n<span id=\"Kernel\"><h2>Kernel<\/h2><\/span>\n<p><a id=\".2Fsbin.2Fpreinit\" name=\".2Fsbin.2Fpreinit\"><\/a><\/p>\n<span id=\"sbinpreinit\"><h2>\/sbin\/preinit<\/h2><\/span>\n<p>&nbsp;<\/p>\n<h1 id=\"firstHeading\">N900 Custom Kernel<\/h1>\n<table id=\"toc\" summary=\"Contents\">\n<tbody>\n<tr>\n<td>\n<div id=\"toctitle\">\n<span id=\"Contents\"><h2>Contents<\/h2><\/span>\n<\/div>\n<ul>\n<li>1 Restore the original default configuration<\/li>\n<li>2 Edit the configuration file<\/li>\n<li>3 Include your changes for compilation<\/li>\n<li>4 Compile the kernel<\/li>\n<li>5 Flash the kernel<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<span id=\"Restore_the_original_default_configuration\"><h3>Restore the original default configuration<\/h3><\/span>\n<p>Login to your scratchbox and create a MaemoKernel-Target. How to do this is described here: <a title=\"http:\/\/wiki.maemo.org\/Documentation\/Maemo_5_Developer_Guide\/Kernel_and_Debugging_Guide\/Maemo_Kernel_Guide\" href=\"http:\/\/wiki.maemo.org\/Documentation\/Maemo_5_Developer_Guide\/Kernel_and_Debugging_Guide\/Maemo_Kernel_Guide\" rel=\"nofollow\">http:\/\/wiki.maemo.org\/Documentation\/Maemo_5_Developer_Guide\/Kernel_and_Debugging_Guide\/Maemo_Kernel_Guide<\/a><\/p>\n<div dir=\"ltr\">\n<pre>make EXTRAVERSION=-omap1 rx51_defconfig<\/pre>\n<\/div>\n<p><a id=\"Edit_the_configuration_file\" name=\"Edit_the_configuration_file\"><\/a><\/p>\n<span id=\"Edit_the_configuration_file\"><h3>Edit the configuration file<\/h3><\/span>\n<div dir=\"ltr\">\n<pre># Enable the framebuffer console to display kernel messages\r\n CONFIG_FRAMEBUFFER_CONSOLE=y<\/pre>\n<\/div>\n<p><a id=\"Include_your_changes_for_compilation\" name=\"Include_your_changes_for_compilation\"><\/a><\/p>\n<span id=\"Include_your_changes_for_compilation\"><h3>Include your changes for compilation<\/h3><\/span>\n<div dir=\"ltr\">\n<pre>make EXTRAVERSION=-omap1 oldconfig<\/pre>\n<\/div>\n<p><a id=\"Compile_the_kernel\" name=\"Compile_the_kernel\"><\/a><\/p>\n<span id=\"Compile_the_kernel\"><h3>Compile the kernel<\/h3><\/span>\n<div dir=\"ltr\">\n<pre>make EXTRAVERSION=-omap1 bzImage<\/pre>\n<\/div>\n<p><a id=\"Flash_the_kernel\" name=\"Flash_the_kernel\"><\/a><\/p>\n<span id=\"Flash_the_kernel\"><h3>Flash the kernel<\/h3><\/span>\n<p>Download and install the flasher from <a title=\"http:\/\/tablets-dev.nokia.com\/maemo-dev-env-downloads.php\" href=\"http:\/\/tablets-dev.nokia.com\/maemo-dev-env-downloads.php\" rel=\"nofollow\">http:\/\/tablets-dev.nokia.com\/maemo-dev-env-downloads.php<\/a><\/p>\n<div dir=\"ltr\">\n<pre>flasher-3.5 -f -k \/scratchbox\/users\/sysop\/home\/sysop\/maemo_kernel\/kernel-2.6.28\/arch\/arm\/boot\/zImage<\/pre>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<span id=\"N900_Initial_Setup\"><h1>N900 Initial Setup<\/h1><\/span>\n<p><a id=\"First_things_first\" name=\"First_things_first\"><\/a><\/p>\n<span id=\"First_things_first\"><h2>First things first<\/h2><\/span>\n<p><a id=\"Add_repositories\" name=\"Add_repositories\"><\/a><\/p>\n<span id=\"Add_repositories\"><h3>Add repositories<\/h3><\/span>\n<p>File: \/etc\/apt\/sources.list.d\/hildon-application-manager.list<\/p>\n<pre>deb <a title=\"https:\/\/downloads.maemo.nokia.com\/fremantle\/ssu\/apps\/\" href=\"https:\/\/downloads.maemo.nokia.com\/fremantle\/ssu\/apps\/\" rel=\"nofollow\">https:\/\/downloads.maemo.nokia.com\/fremantle\/ssu\/apps\/<\/a> .\/\r\ndeb <a title=\"https:\/\/downloads.maemo.nokia.com\/fremantle\/ssu\/mr0\" href=\"https:\/\/downloads.maemo.nokia.com\/fremantle\/ssu\/mr0\" rel=\"nofollow\">https:\/\/downloads.maemo.nokia.com\/fremantle\/ssu\/mr0<\/a> .\/\r\ndeb <a title=\"https:\/\/downloads.maemo.nokia.com\/fremantle\/ovi\/\" href=\"https:\/\/downloads.maemo.nokia.com\/fremantle\/ovi\/\" rel=\"nofollow\">https:\/\/downloads.maemo.nokia.com\/fremantle\/ovi\/<\/a> .\/\r\ndeb <a title=\"http:\/\/repository.maemo.org\/extras\" href=\"http:\/\/repository.maemo.org\/extras\" rel=\"nofollow\">http:\/\/repository.maemo.org\/extras<\/a> fremantle free non-free\r\ndeb <a title=\"http:\/\/repository.maemo.org\/extras-devel\" href=\"http:\/\/repository.maemo.org\/extras-devel\" rel=\"nofollow\">http:\/\/repository.maemo.org\/extras-devel<\/a> fremantle free non-free\r\ndeb <a title=\"http:\/\/repository.maemo.org\/extras-testing\" href=\"http:\/\/repository.maemo.org\/extras-testing\" rel=\"nofollow\">http:\/\/repository.maemo.org\/extras-testing<\/a> fremantle free non-free<\/pre>\n<p><a id=\"Install_mandatory_software\" name=\"Install_mandatory_software\"><\/a><\/p>\n<span id=\"Install_mandatory_software\"><h3>Install mandatory software<\/h3><\/span>\n<pre>rootsh\r\nmad-developer<\/pre>\n<p>&nbsp;<\/p>\n<h1 id=\"firstHeading\">N900 Installing and using Bootchart<\/h1>\n<table id=\"toc\" summary=\"Contents\">\n<tbody>\n<tr>\n<td>\n<div id=\"toctitle\">\n<span id=\"Contents_1\"><h2>Contents<\/h2><\/span>\n<\/div>\n<ul>\n<li>1 Introduction<\/li>\n<li>2 Enter build-env<\/li>\n<li>3 Download bootchart<\/li>\n<li>4 Modifying Bootchart-Scripts\n<ul>\n<li>4.1 sleep vs. usleep<\/li>\n<li>4.2 Bash variable manipulation<\/li>\n<li>4.3 Include configuration<\/li>\n<li>4.4 Insert exit process<\/li>\n<li>4.5 Force tmpfs creation<\/li>\n<\/ul>\n<\/li>\n<li>5 Installing files on N900<\/li>\n<li>6 Rebooting the N900<\/li>\n<li>7 Results<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a id=\"Introduction\" name=\"Introduction\"><\/a><\/p>\n<span id=\"Introduction\"><h2>Introduction<\/h2><\/span>\n<p>Actually we need 3 files: bootchartd bootchartd.conf and usleep. These files get modified and installed on the N900. But read on&#8230;<\/p>\n<p><a id=\"Enter_build-env\" name=\"Enter_build-env\"><\/a><\/p>\n<span id=\"Enter_build-env\"><h2>Enter build-env<\/h2><\/span>\n<p>Login to scratchbox and select target:<\/p>\n<pre>scratchbox\r\nsb-conf select FREMANTLE_ARMEL<\/pre>\n<p><a id=\"Download_bootchart\" name=\"Download_bootchart\"><\/a><\/p>\n<span id=\"Download_bootchart\"><h2>Download bootchart<\/h2><\/span>\n<pre>wget <a title=\"http:\/\/prdownloads.sourceforge.net\/bootchart\/bootchart-0.9.tar.bz2\" href=\"http:\/\/prdownloads.sourceforge.net\/bootchart\/bootchart-0.9.tar.bz2\" rel=\"nofollow\">http:\/\/prdownloads.sourceforge.net\/bootchart\/bootchart-0.9.tar.bz2<\/a>\r\ntar xvfj bootchar-0.9.tar.bz2<\/pre>\n<p>Create a directory for our files<\/p>\n<pre>mkdir BOOTCHART\r\ncd BOOTCHART<\/pre>\n<p>And copy the relevant bootchart files to it<\/p>\n<pre>cp ..\/bootchart-0.9\/scripts\/bootchartd .\/\r\ncp ..\/bootchart-0.9\/scripts\/bootchartd.conf .\/<\/pre>\n<p><a id=\"Modifying_Bootchart-Scripts\" name=\"Modifying_Bootchart-Scripts\"><\/a><\/p>\n<span id=\"Modifying_Bootchart-Scripts\"><h2>Modifying Bootchart-Scripts<\/h2><\/span>\n<p>To get bootchart running on the N900 some modifications are necessary:<\/p>\n<p><a id=\"sleep_vs._usleep\" name=\"sleep_vs._usleep\"><\/a><\/p>\n<span id=\"sleep_vs._usleep\"><h3>sleep vs. usleep<\/h3><\/span>\n<p>bootchart uses the gnu sleep which accepts sleep times less than a second like: sleep 0.2. Maemo on the other hand uses busybox&#8217;s sleep function which only accept integers like: sleep 5. Because of this we have to develop a small binary to fulfill the requirement of sleeping less than a second.<\/p>\n<p>Develop usleep by creating a file with the following content:<\/p>\n<div dir=\"ltr\">\n<pre>#include &lt;stdio.h&gt;\r\n#include &lt;stdlib.h&gt;\r\n\r\nint main (int argc, char **argv) {\r\n\tif (argc\u00c2\u00a0!= 2) {\r\n\t\tprintf(\"Usage: usleep [usec]\\n\");\r\n\t\treturn 1;\r\n\t}\r\n\telse {\r\n\t\tusleep(atoi(argv[1]));\r\n\t\treturn 0;\r\n\t}\r\n}<\/pre>\n<\/div>\n<p>and compile the file with:<\/p>\n<div dir=\"ltr\">\n<pre>gcc -o usleep usleep.c<\/pre>\n<\/div>\n<p>and copy it also to our directory BOOTCHART<\/p>\n<p>Now replace every occurrence of<\/p>\n<pre>sleep $SAMPLE_PERIOD<\/pre>\n<p>with<\/p>\n<pre>usleep $SAMPLE_PERIOD<\/pre>\n<p><strong>NOTE:<\/strong> don&#8217;t touch the strings with &#8220;sleep 5&#8221; for example, since our usleep would only sleep for 5 usec insted of 5s!<\/p>\n<p><a id=\"Bash_variable_manipulation\" name=\"Bash_variable_manipulation\"><\/a><\/p>\n<span id=\"Bash_variable_manipulation\"><h3>Bash variable manipulation<\/h3><\/span>\n<p>Since the bootchart script isn&#8217;t run within bash we have to deal with another incompatibility from busybox. Within the script you will find (line 104) something like this:<\/p>\n<div dir=\"ltr\">\n<pre>uptime=${uptime\/.\/}<\/pre>\n<\/div>\n<p>In bash this would remove all dots (.) within the variable $uptime. Not so in busybox where you will get a error message: <strong>-sh: syntax error: Bad substitution<\/strong><\/p>\n<p>We will replace that line with:<\/p>\n<div dir=\"ltr\">\n<pre>uptime=${uptime%%.*}${uptime##*.}<\/pre>\n<\/div>\n<p>This line just concatenate everything before and everything after the dot (.). Same effect, different approach.<\/p>\n<p><a id=\"Include_configuration\" name=\"Include_configuration\"><\/a><\/p>\n<span id=\"Include_configuration\"><h3>Include configuration<\/h3><\/span>\n<p>Since there&#8217;s only 8 configuration variables within the bootchart.conf I included them directly within the script.<\/p>\n<p><strong>Note:<\/strong> Be sure that you replace the SAMPLE_PERIOD variable because of our usleep command.<\/p>\n<div dir=\"ltr\">\n<pre>SAMPLE_PERIOD=200000<\/pre>\n<\/div>\n<p><a id=\"Insert_exit_process\" name=\"Insert_exit_process\"><\/a><\/p>\n<span id=\"Insert_exit_process\"><h3>Insert exit process<\/h3><\/span>\n<p>Since the bootchart logs it&#8217;s data to a tmpfs which isn&#8217;t actually existing (accessible) once the N900 is up again, we have to define a process which will trigger bootchart to stop logging and start packaging and saving it&#8217;s results to $BOOTLOG_DEST (\/var\/log\/bootchart.tgz by default). I&#8217;ve used the process &#8220;browser&#8221; to trigger this. So when I reboot the N900 the logging stops immediately if i start the default webrowser.<\/p>\n<div dir=\"ltr\">\n<pre>...\r\nlocal exit_proc=\"gdmgreeter gdm-binary kdm_greet kdm browser\"\r\n...\r\nexit_proc=\"mingetty agetty rungetty getty browser\"\r\n...<\/pre>\n<\/div>\n<p><a id=\"Force_tmpfs_creation\" name=\"Force_tmpfs_creation\"><\/a><\/p>\n<span id=\"Force_tmpfs_creation\"><h3>Force tmpfs creation<\/h3><\/span>\n<p>Since there might be a \/tmp directory (which would be preferred by bootchart) force the script to create the tmpfs by uncomment the if-clause at around line 43:<\/p>\n<div dir=\"ltr\">\n<pre># if [ -z \"$LOG_DIR\" ]; then\r\n    LOG_DIR=\"\/mnt\"\r\n    LAZY_UMOUNT=\"yes\"\r\n    mount -n -t tmpfs -o size=$TMPFS_SIZE none \"$LOG_DIR\" &gt;\/dev\/null 2&gt;&amp;1\r\n# fi<\/pre>\n<\/div>\n<p><a id=\"Installing_files_on_N900\" name=\"Installing_files_on_N900\"><\/a><\/p>\n<span id=\"Installing_files_on_N900\"><h2>Installing files on N900<\/h2><\/span>\n<p>Now we have 2 files within our BOOTCHART directory:<\/p>\n<pre>* bootchartd\r\n* usleep<\/pre>\n<p>Copy both files to \/sbin on your N900 with ssh or whatever.<\/p>\n<p><a id=\"Rebooting_the_N900\" name=\"Rebooting_the_N900\"><\/a><\/p>\n<span id=\"Rebooting_the_N900\"><h2>Rebooting the N900<\/h2><\/span>\n<p>The last thing we have to do is to tell the kernel to use \/sbin\/bootchart as initscript and tell bootchart that it should start \/sbin\/preinit. Normally this would be archived with the kernel option:<\/p>\n<pre>init=\/sbin\/bootchart bootchart_init=\/sbin\/preinit<\/pre>\n<p>To archieve this you can:<\/p>\n<ul>\n<li>build custom kernel with the appropriate CONFIG_CMDLINE<\/li>\n<li><strong>WARNING UNTESTED (might mess up NOLO-bootloader)<\/strong> use the flasher-3.5 with the commandline option &#8211;boot[=ARG]<\/li>\n<\/ul>\n<p><a id=\"Results\" name=\"Results\"><\/a><\/p>\n<span id=\"Results\"><h2>Results<\/h2><\/span>\n<p><a title=\"File:N900-51.1.png\" href=\"https:\/\/192.168.100.2\/wiki\/index.php\/File:N900-51.1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/192.168.100.2\/wiki\/images\/6\/6e\/N900-51.1.png\" alt=\"File:N900-51.1.png\" width=\"2879\" height=\"3192\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<span id=\"N900_Repositories\"><h1>N900 Repositories<\/h1><\/span>\n<p><strong>INSTALL ALL REPOS<\/strong>: <a title=\"http:\/\/arch.nord.thebc.ch\/repository.install\" href=\"http:\/\/arch.nord.thebc.ch\/repository.install\" rel=\"nofollow\">N900 click here<\/a><\/p>\n<table id=\"toc\" summary=\"Contents\">\n<tbody>\n<tr>\n<td>\n<div id=\"toctitle\">\n<span id=\"Contents_2\"><h2>Contents<\/h2><\/span>\n<\/div>\n<ul>\n<li>1 Supported\n<ul>\n<li>1.1 extras<\/li>\n<li>1.2 maemo.org sdk tools<\/li>\n<\/ul>\n<\/li>\n<li>2 Un Supported\n<ul>\n<li>2.1 extras-testing<\/li>\n<li>2.2 extras-devel<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a id=\"Supported\" name=\"Supported\"><\/a><\/p>\n<span id=\"Supported\"><h3>Supported<\/h3><\/span>\n<p><a id=\"extras\" name=\"extras\"><\/a><\/p>\n<span id=\"extras\"><h4>extras<\/h4><\/span>\n<p><a title=\"http:\/\/my-maemo.com\/download\/repos\/extras.install\" href=\"http:\/\/my-maemo.com\/download\/repos\/extras.install\" rel=\"nofollow\">http:\/\/my-maemo.com\/download\/repos\/extras.install<\/a><\/p>\n<pre>Catalog name: maemo.org extras\r\nWeb address: <a title=\"http:\/\/repository.maemo.org\/extras\" href=\"http:\/\/repository.maemo.org\/extras\" rel=\"nofollow\">http:\/\/repository.maemo.org\/extras<\/a>\r\nDistribution: fremantle\r\nComponents: free non-free<\/pre>\n<p><a id=\"maemo.org_sdk_tools\" name=\"maemo.org_sdk_tools\"><\/a><\/p>\n<span id=\"maemo.org_sdk_tools\"><h4>maemo.org sdk tools<\/h4><\/span>\n<pre>Catalog name: Maemo 5 SDK tools\r\nWeb address: <a title=\"http:\/\/repository.maemo.org\/\" href=\"http:\/\/repository.maemo.org\/\" rel=\"nofollow\">http:\/\/repository.maemo.org\/<\/a>\r\nDistribution: fremantle\/tools\r\nComponents: free non-free<\/pre>\n<p><a id=\"Un_Supported\" name=\"Un_Supported\"><\/a><\/p>\n<span id=\"Un_Supported\"><h3>Un Supported<\/h3><\/span>\n<p><a id=\"extras-testing\" name=\"extras-testing\"><\/a><\/p>\n<span id=\"extras-testing\"><h4>extras-testing<\/h4><\/span>\n<p><a title=\"http:\/\/my-maemo.com\/download\/repos\/extras-testing.install\" href=\"http:\/\/my-maemo.com\/download\/repos\/extras-testing.install\" rel=\"nofollow\">http:\/\/my-maemo.com\/download\/repos\/extras-testing.install<\/a><\/p>\n<pre>Catalog name: maemo.org extras-testing\r\nWeb address: <a title=\"http:\/\/repository.maemo.org\/extras-testing\" href=\"http:\/\/repository.maemo.org\/extras-testing\" rel=\"nofollow\">http:\/\/repository.maemo.org\/extras-testing<\/a>\r\nDistribution: fremantle\r\nComponents: free non-free<\/pre>\n<p><a id=\"extras-devel\" name=\"extras-devel\"><\/a><\/p>\n<span id=\"extras-devel\"><h4>extras-devel<\/h4><\/span>\n<p><a title=\"http:\/\/repository.maemo.org\/extras\/install\/extras-devel-fremantle.install\" href=\"http:\/\/repository.maemo.org\/extras\/install\/extras-devel-fremantle.install\" rel=\"nofollow\">http:\/\/repository.maemo.org\/extras\/install\/extras-devel-fremantle.install<\/a><\/p>\n<p><a title=\"http:\/\/my-maemo.com\/download\/repos\/extras-devel.install\" href=\"http:\/\/my-maemo.com\/download\/repos\/extras-devel.install\" rel=\"nofollow\">http:\/\/my-maemo.com\/download\/repos\/extras-devel.install<\/a><\/p>\n<pre>[catalogues]\r\ncatalogues = extras-devel\r\n\r\n[extras-devel]\r\nname = Extras-Devel\r\nuri = <a title=\"http:\/\/repository.maemo.org\/extras-devel\/\" href=\"http:\/\/repository.maemo.org\/extras-devel\/\" rel=\"nofollow\">http:\/\/repository.maemo.org\/extras-devel\/<\/a>\r\ncomponents = free non-free<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>N900 Boot Process Kernel \/sbin\/preinit &nbsp; N900 Custom Kernel Contents 1 Restore the original default configuration 2 Edit the configuration file 3 Include your changes for compilation 4 Compile the kernel 5 Flash the kernel Restore the original default configuration &hellip; <a href=\"https:\/\/thebc.ch\/blog\/?p=254\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,5,16],"tags":[25],"class_list":["post-254","post","type-post","status-publish","format-standard","hentry","category-hardware","category-linux","category-software","tag-nokia-n900"],"_links":{"self":[{"href":"https:\/\/thebc.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thebc.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thebc.ch\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thebc.ch\/blog\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/thebc.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=254"}],"version-history":[{"count":22,"href":"https:\/\/thebc.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/254\/revisions"}],"predecessor-version":[{"id":2726,"href":"https:\/\/thebc.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/254\/revisions\/2726"}],"wp:attachment":[{"href":"https:\/\/thebc.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thebc.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thebc.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}