User:Tanner

m (xz-utils)
(kernel)
Line 26: Line 26:
To replace several tools in scratchbox you can also use the following line as a template
To replace several tools in scratchbox you can also use the following line as a template
  SBOX_REDIRECT_IGNORE:=$(shell echo /usr/bin/{perl,dh_*} | sed "s/ /:/g")
  SBOX_REDIRECT_IGNORE:=$(shell echo /usr/bin/{perl,dh_*} | sed "s/ /:/g")
 +
 +
== [http://maemo.org/packages/view/kernel-flasher-maemo/ custom Linux kernel] ==
 +
 +
My custom kernel which contains probably everything one could need on the N900:
 +
 +
This custom kernel contains additional modules for IPv6, packet filtering,
 +
NAT, tunneling, kernel configuration, Wifi mesh networking,
 +
ext4, XFS, reiserfs, NTFS reading, ISO9660, UDF, CIFS, automounter,
 +
UNIONFS, device mapper and dmloop, cryptography, cryptoloop,
 +
EFI partitions, UTF8 codepages, mouse+joystick input,
 +
USB/IP and generic USB device drivers.
 +
It shows a boot logo.
 +
 +
Just install the package "kernel-flasher-maemo" from extras-devel/non-free (section System) and reboot.
 +
Reverting to the original kernel is simple:  "apt-get install --reinstall kernel kernel-flasher"  or reflash only the original kernel image.
 +
see [http://talk.maemo.org/showthread.php?t=43420 TMO page] for more details.
== [http://maemo.org/packages/view/texlive-latex-base/ TeXLive 2009] ==
== [http://maemo.org/packages/view/texlive-latex-base/ TeXLive 2009] ==

Revision as of 20:50, 10 February 2010

Contents

Packages

info about some of the packages I've uploaded to extras-devel

debhelper7

see also http://wiki.maemo.org/Packaging

A backport of Debhelper 7 for Fremantle is available in extras-devel. It works transparently and can coexist with debhelper 5 in the SDK. It also works on the autobuilder, if you specify

Build-Depends: debhelper7

in debian/control. The following lines in debian/rules are necessary to use it:

PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
export PATH
SBOX_REDIRECT_IGNORE=/usr/bin/perl
export SBOX_REDIRECT_IGNORE

We are working on enhancement to make optification is easier, i.e. direct installation of files in the /opt hierarchy.

If you also need a more recent cdbs, then use the package cdbs-dh7, which conflicts with the standard cdbs and does not work on autobuilder yet.

To replace several tools in scratchbox you can also use the following line as a template

SBOX_REDIRECT_IGNORE:=$(shell echo /usr/bin/{perl,dh_*} | sed "s/ /:/g")

custom Linux kernel

My custom kernel which contains probably everything one could need on the N900:

This custom kernel contains additional modules for IPv6, packet filtering,
NAT, tunneling, kernel configuration, Wifi mesh networking,
ext4, XFS, reiserfs, NTFS reading, ISO9660, UDF, CIFS, automounter,
UNIONFS, device mapper and dmloop, cryptography, cryptoloop,
EFI partitions, UTF8 codepages, mouse+joystick input,
USB/IP and generic USB device drivers.
It shows a boot logo.

Just install the package "kernel-flasher-maemo" from extras-devel/non-free (section System) and reboot. Reverting to the original kernel is simple: "apt-get install --reinstall kernel kernel-flasher" or reflash only the original kernel image. see TMO page for more details.

TeXLive 2009

talk page

R (statistics)

bug: installation fails with ucfr missing solution: wait or edit r-base-core.postinst and comment line 44 out

BLAS LAPACK suitesparse

bug: linking against BLAS and LAPACK currently hardcodes the links found in the -dev package.

numpy, scipy, sympy

some discussion

bonnie++ (filesystem benchmarks)

see post and ff

tcl8.5 tk8.5 python-tk

lzma and its successor xz-utils

an extremely efficient compressor. it is much faster than bzip2 for decompression and yields about 30% smaller files.

xskat

bug: keyboard doesn't work. bug: window close button is not visible

experimental packages

some experimental ports which I have not yet uploaded to extras-devel can be found in my repository

deb http://www.maemory.com/N900/ fremantle free incompatible

currently: python2.6, perl5.10, GNU compiler collection 4.4.3, autoconf 2.64, automake1.10


Ideas/plans:

alternative USB host solution

USB/IP

full optification

Ideally addon software should be installed only in /opt without any symlinks in / (NAND) in accordance with FHS. /usr/local should be moved and symlinked to /opt/local and is reserved for own programs not maintained by dpkg.

A package may either install its files directly (for small packages) in the /opt/maemo hierarchy (bin,etc,lib,man,share) or in a separate directory /opt/<package> with its own hierarchy (bin,etc,lib,man,share). For the latter solution packages should symlink all non-private files to /opt/maemo/{bin,etc,lib,man,share} and the search paths of Maemo need to be adjusted in /etc/profile and /etc/osso-af-init/af-defines.sh:

  • PATH=$PATH:/opt/maemo/usr/bin (and sbin for root)
  • ld.so.conf: add /opt/maemo/usr/lib
  • locales: LOCPATH=LOCPATH=/usr/share/locale:/opt/maemo/usr/share/locale
  • MANPATH=/opt/maemo/usr/share/man
  • pkgconfig: /usr/share/pkgconfig:/opt/maemo/usr/share/pkgconfig
  • info in info?: /usr/share/info:/opt/maemo/usr/share/info
  • apps in hildon ?: /usr/share/applications:/opt/maemo/usr/share/applications
  • icons in hildon ?: /usr/share/icons:/opt/maemo/usr/share/icons

this list may be incomplete - please help to complete it

As NAND is much faster than eMMC a cache manager could mantain a list of very often used binaries and libraries in /opt and automatically copy them and symlink them to a fixed size cache in NAND.

TMPDIR=/var/tmp should be moved to /opt/tmp or /var/opt should symlink to /opt/var and contain a larger tmp directory.

chroot instead of /opt

I have described my currently preferred solution as #5


Tips and tricks:

fresh builds

latest packages

Repartitioning

brainstorm brainstorm discussion repartitioning thread

how to swap FAT and ext3 parition how to implement USB mass storage with a loopback file

Setting up a repository mirror

reprepro configuration

Reflashing & Restore

this is a slightly modified version of the script I use to restore my N900 after a reflash. My reflashing procedure is:

  1. store all settings with Backup on my SD card
  2. reflash with standard http://wiki.maemo.org/Updating_the_firmware, i.e.
sudo flasher-3.5 -F RX-51_2009SE_2.2009.51-1_PR_COMBINED_MR0_ARM.bin -f -R
  1. restore old backup except programs
  2. install gainroot
  3. in Terminal:
sudo su -
/home/backup/restore

with following script in /home/backup (feedback and patches are welcome). It expects that you made a backup of /root and your selected modified files (e.g. /etc/ssh) in /home/backup. The file "pkgs" should contain a list (line by line) of the package names you want to install.

#!/bin/sh
# N900 restore script
# © 2010 by Thomas Tanner <tanner@maemory.com>
# licensed under GPLv3

set -x
# script and data must be in /home/backup
cd /home/backup
# remove old opt
rm -rf /home/opt
mkdir /home/opt
# copy /root backup
rm -rf /root
cp -a root /
# copy modifed files for /etc
cp -a etc/* /etc

# enable user ssh login with ~/.ssh/authorized_keys
sed 's/^user:!/user:\*/' /etc/passwd > /etc/passwd.tmp
cp /etc/passwd.tmp /etc/passwd # mv

# move root stuff to /home
dirs="usr/share/icons usr/share/nokia-maps usr/share/themes usr/share/fonts usr/share/locale usr/lib/locale var/lib/apt"
#optional: var/lib/dpkg
if test -d /home/var/cache/apt; then
  # keep existing apt cache
  rm -rf /var/cache/apt
  ln -s /home/var/cache/apt /var/cache/apt
else
  dirs="$dirs var/cache/apt"
fi
(cd / && du -sc $dirs)
for d in $dirs; do
    test -L /$d && continue
    echo moving /$d
    rm -rf /home/$d
    mkdir -p /home/$d
    cp -a /$d /home/$d/..
    rm -rf /$d
    ln -s /home/$d /$d
done

mount /home/user/MyDocs # non-standard partition layout
apt-get update
apt-get -y install mc python-support openssh-server

# install my standard set of packages
apt-get -y install `cat pkgs`