Editing Devuan on N900

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 15: Line 15:
  cd ../linux-4.10.8
  cd ../linux-4.10.8
-
I used Pali’s <code> rx51_defconfig </code> <ref> https://github.com/pali/linux-n900/blob/v4.6-rc1-n900/arch/arm/configs/rx51_defconfig </ref> as a configuration file:
+
I used Pali’s [https://github.com/pali/linux-n900/blob/v4.6-rc1-n900/arch/arm/configs/rx51_defconfig] as a configuration file:
  curl -o arch/arm/configs https://raw.githubusercontent.com/pali/linux-n900/v4.6-rc1-n900/arch/arm/configs/rx51_defconfig
  curl -o arch/arm/configs https://raw.githubusercontent.com/pali/linux-n900/v4.6-rc1-n900/arch/arm/configs/rx51_defconfig
Line 43: Line 43:
-
Now we may compile the kernel <ref> http://elinux.org/N900 </ref>. Let’s first cd back to the <code> linux-4.10.8 </code> directory. Then select the desired target architecture and cross-toolchain:
+
Now we may compile the kernel<ref> http://elinux.org/N900 </ref>. Let’s first cd back to the <code> linux-4.10.8 </code> directory. Then select the desired target architecture and cross-toolchain:
  export ARCH=arm
  export ARCH=arm
Line 52: Line 52:
  make rx51_defconfig
  make rx51_defconfig
-
At this point it is wise to hack a bit the kernel configuration by setting the two watchdogs (OMAP and TWL4030) to be included into the kernel itself and not separated as loadable modules <ref> Actually the system may boot also with the watchdogs in the modules, but in this case it is very unstable: to avoid reboot, the watchdogs need to be loaded in a few seconds, which may not be possible in some cases (namely, I had a problem due to udev waiting for the loopback lo device to be mounted, which did not happen due to the lack of an initrd). </ref>. This is done by calling
+
At this point it is wise to hack a bit the kernel configuration by setting the two watchdogs (OMAP and TWL4030) to be included into the kernel itself and not separated as loadable modules<ref> Actually the system may boot also with the watchdogs in the modules, but in this case it is very unstable: to avoid reboot, the watchdogs need to be loaded in a few seconds, which may not be possible in some cases (namely, I had a problem due to udev waiting for the loopback lo device to be mounted, which did not happen due to the lack of an initrd). </ref>. This is done by calling
  make menuconfig
  make menuconfig
Line 84: Line 84:
== Devuan file system ==
== Devuan file system ==
-
For the following steps it is essential to be root on a Devuan system <ref> https://wiki.debian.org/EmDebian/CrossDebootstrap </ref>. Let’s install some packages:
+
For the following steps it is essential to be root on a Devuan system<ref> https://wiki.debian.org/EmDebian/CrossDebootstrap </ref>. Let’s install some packages:
  apt-get install binfmt-support qemu qemu-user-static debootstrap
  apt-get install binfmt-support qemu qemu-user-static debootstrap
Line 138: Line 138:
  Pin-Priority: -1
  Pin-Priority: -1
-
Now, in order to perform our customisation, we have to chroot again. To this aim, we first mount the <code> /proc </code> file system of the host to the <code> n900 </code> directory, and tell the system to install packages without starting their associated services. So let’s create <code> usr/sbin/policy-rc.d </code> with <ref> https://serverfault.com/questions/567474/how-can-i-install-packages-without-starting-their-associated-services </ref>:
+
Now, in order to perform our customisation, we have to chroot again. To this aim, we first mount the <code> /proc </code> file system of the host to the <code> n900 </code> directory, and tell the system to install packages without starting their associated services. So let’s create <code> usr/sbin/policy-rc.d </code> with<ref> https://serverfault.com/questions/567474/how-can-i-install-packages-without-starting-their-associated-services </ref>:
  #!/bin/sh
  #!/bin/sh
Line 217: Line 217:
WARNING: ckbcomp reads <code> /etc/default/keyboard </code>, and then files in <code> /usr/share/X11/xkb/ </code>. The first file to be read is <code> rules/xorg </code>, which specifies other files to be read for the keyboard model and layout specified in <code> /etc/default/keyboard </code>. Based on the rules, files are read in <code> geometry/, keycodes/ </code> and <code> symbols/ </code>. At present (and probably also in the future) ckbcomp does not read files in <code> types/ </code>: the types for modifier keys are hardcoded in ckbcomp itself. As a consequence, there is a particular issue: the version of ckbcomp included in Jessie does not know about <code> PC_FN_LEVEL2 </code>, a type which allows on some keyboard layouts (e.g. Italian and German) to switch from left/right to up/down arrows by pressing (and holding) the function (blue) key. This results in a warning, and the arrow switch is instead obtained by means of shift. To correct the behaviour, I installed console-setup version 1.164 (from Debian sid), or rather installed it on Debian and copied <code> /usr/bin/ckbcomp </code> to the Devuan file system.
WARNING: ckbcomp reads <code> /etc/default/keyboard </code>, and then files in <code> /usr/share/X11/xkb/ </code>. The first file to be read is <code> rules/xorg </code>, which specifies other files to be read for the keyboard model and layout specified in <code> /etc/default/keyboard </code>. Based on the rules, files are read in <code> geometry/, keycodes/ </code> and <code> symbols/ </code>. At present (and probably also in the future) ckbcomp does not read files in <code> types/ </code>: the types for modifier keys are hardcoded in ckbcomp itself. As a consequence, there is a particular issue: the version of ckbcomp included in Jessie does not know about <code> PC_FN_LEVEL2 </code>, a type which allows on some keyboard layouts (e.g. Italian and German) to switch from left/right to up/down arrows by pressing (and holding) the function (blue) key. This results in a warning, and the arrow switch is instead obtained by means of shift. To correct the behaviour, I installed console-setup version 1.164 (from Debian sid), or rather installed it on Debian and copied <code> /usr/bin/ckbcomp </code> to the Devuan file system.
-
If one wants to customise the keyboard, the layout is defined in <code> symbols/nokia_vndr/rx-51 </code>; edit the file <ref> https://wiki.maemo.org/Remapping_keyboard </ref> and run again <code> dpkg-reconfigure console-setup </code>.
+
If one wants to customise the keyboard, the layout is defined in <code> symbols/nokia_vndr/rx-51 </code>; edit the file<ref> https://wiki.maemo.org/Remapping_keyboard </ref> and run again <code> dpkg-reconfigure console-setup </code>.
In order to have a working power button for shutdown, we need:
In order to have a working power button for shutdown, we need:
Line 247: Line 247:
  wl1251_spi
  wl1251_spi
-
to <code> /etc/modules </code>. At this point the wifi interface should be ready. In order to connect to my wlan, I also set up the wpa-psk protocol <ref> https://wiki.debian.org/WiFi/HowToUse </ref>. This requires:
+
to <code> /etc/modules </code>. At this point the wifi interface should be ready. In order to connect to my wlan, I also set up the wpa-psk protocol<ref> https://wiki.debian.org/WiFi/HowToUse </ref>. This requires:
  apt-get install wpasupplicant
  apt-get install wpasupplicant
Line 264: Line 264:
and giving, at prompt, the corresponding passphrase. (Actually, I did <code> wpa_passhprase <myssid> <mypassphrase> > /path/to/n900/etc/network/interfaces.d/wlan0 </code>, and edited this file.)
and giving, at prompt, the corresponding passphrase. (Actually, I did <code> wpa_passhprase <myssid> <mypassphrase> > /path/to/n900/etc/network/interfaces.d/wlan0 </code>, and edited this file.)
-
I also added ssh support <ref> https://wiki.debian.org/SSH </ref>:
+
I also added ssh support<ref> https://wiki.debian.org/SSH </ref>:
  apt-get install openssh-server
  apt-get install openssh-server
Line 298: Line 298:
-
My main computer is a Mac, so I downloaded Nokia’s proprietary flasher <ref> It may be found at http://web.archive.org/web/20131117073524/http://skeiron.org/tablets-dev/maemo_dev_env_downloads/. </ref> (I have also a binary for 0xFFFF, built from the sources with a few modifications, but it is prone to hanging the whole system) and installed it (actually, since newer macs have some restrictions due to the System Integrity Protection, I had to unpack the files and copy them manually to proper positions. But this is another story). Then transferred the kernel zImage from the Devuan host to the Mac.
+
My main computer is a Mac, so I downloaded Nokia’s proprietary flasher<ref> It may be found at http://web.archive.org/web/20131117073524/http://skeiron.org/tablets-dev/maemo_dev_env_downloads/. </ref> (I have also a binary for 0xFFFF, built from the sources with a few modifications, but it is prone to hanging the whole system) and installed it (actually, since newer macs have some restrictions due to the System Integrity Protection, I had to unpack the files and copy them manually to proper positions. But this is another story). Then transferred the kernel zImage from the Devuan host to the Mac.
This is the way I boot Devuan on the N900: turn off the device, hold “u”, connect to Mac by usb cable, wait for the usb symbol to appear on the top right corner (usually with backlight off) and on the Mac, from the directory containing the kernel zImage, issue:
This is the way I boot Devuan on the N900: turn off the device, hold “u”, connect to Mac by usb cable, wait for the usb symbol to appear on the top right corner (usually with backlight off) and on the Mac, from the directory containing the kernel zImage, issue:

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)