User:Tanner
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")
CLI icon
For your convenience I have uuencoded Tim Samoff's CLI icon which is supposed to be added to the debian/control file of CLI apps:
XB-Maemo-Icon-26: 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 5l7y6xMAAAAASUVORK5CYII=
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, NILFS2, 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
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
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
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
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
Reflashing & Restore
this is a slightly modified version of the script I use to restore my N900 after a reflash. My reflashing procedure is:
- store all settings with Backup on my SD card
- 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
- restore old backup except programs
- install gainroot
- 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`