User:Tanner
Contents |
[edit] Packages
info about some of the packages I've uploaded to extras-devel
[edit] 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")
[edit] 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. You can download it here.
[edit] 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.
[edit] GNU tools
the crippled busybox is installed on the N900. command line users prefer the real GNU tools. these are the optified packages for the device. Most of them do not take use more RAM than busybox (a few KBs)! coreutils-gnu diffutils-gnu findutils-gnu grep-gnu sed-gnu tar-gnu
[edit] TeXLive 2009
[edit] R (statistics)
bug: installation fails with ucfr missing solution: wait or edit r-base-core.postinst and comment line 44 out
[edit] BLAS LAPACK suitesparse
bug: linking against BLAS and LAPACK currently hardcodes the links found in the -dev package.
[edit] numpy, scipy, sympy
[edit] bonnie++ (filesystem benchmarks)
see post and ff
[edit] tcl8.5 tk8.5 python-tk
[edit] lzma and its successor xz-utils
an extremely efficient compressor. it is much faster than bzip2 for decompression and yields about 30% smaller files.
[edit] xskat
bug: keyboard doesn't work. bug: window close button is not visible
[edit] experimental packages
some experimental ports which I have not yet uploaded to extras-devel can be found in my repository
deb http://n900.tannerlab.com/ fremantle free incompatible
currently: python2.6, perl5.10, GNU compiler collection 4.4.3, autoconf 2.64, automake1.10
[edit] Ideas/plans:
[edit] Moebian: Maemo/MeeGo on Debian
Wiki and discussion
[edit] Brainstorm: Repartitioning
brainstorm discussion repartitioning thread
[edit] Brainstorm: Stylus and finger friendly UIs
[edit] alternative USB host solution
[edit] 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/bin (and sbin for root)
- ld.so.conf: add /opt/maemo/lib
- locales: LOCPATH=LOCPATH=/usr/share/locale:/opt/maemo/share/locale
- MANPATH=/opt/maemo/share/man
- pkgconfig: /usr/share/pkgconfig:/opt/maemo/share/pkgconfig
- info in info?: /usr/share/info:/opt/maemo/share/info
- apps in hildon: Bug about Application Menu /usr/share/applications:/opt/maemo/share/applications
- icons in hildon ?: /usr/share/icons:/opt/maemo/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.
A package for Maemo (tested on N800) that allows a package to set environment variables like XDG_DATA_DIRS is available: opt-support. I propose packages depend on opt-support and in their postinst add their variables to the file "/etc/profile.env". -- dannym
[edit] chroot instead of /opt
I have described my currently preferred solution as #5
[edit] Tips and tricks:
[edit] fresh builds
[edit] Repartitioning the flash
how to swap FAT and ext3 parition how to implement USB mass storage with a loopback file
[edit] Setting up a repository mirror on your server
[edit] Safely free some space on rootfs
This script shows you how much space is freed. It can also detect whether some directories have already been moved. WARNING: Although this script works for most users, you should always perform a backup before running it. Do not use this script if you have already used some other methods or scripts from Free_up_rootfs_space! In this case reflashing is recommended.
- install the rootsh package from extras
- download the script to your MyDocs (or upload it via SSH)
- in Terminal run
sudo gainroot sh /home/user/MyDocs/moveroot.sh
It should have freed about 95MB on your rootfs. Upgrading the firmware OTA after using the script is supposed to work. If you reflash the firmware the script will automatically remove the files from the old firmware when you run it again.
This untested script reverts the modifications and moves as many as possible files back to rootfs. Make sure that you have enough space on rootfs for that. Otherwise it will abort the operation. Instructions are the same as for moveroot.sh, except that you call unmoveroot.sh.
[edit] On-device flashing of a custom kernel image
This how to flash a kernel on-device (without USB/flasher 3.5):
- you have a kernel image /path/zImage (with it's modules installed)
- install the package "sdk-fiasco-gen" from SDK
- become root: "sudo gainroot"
- make a "fiasco" :)
fiasco-gen -o /path/zImage.fiasco -g -k /path/zImage
- flash it
/sbin/fiasco-image-update /path/zImage.fiasco
[edit] 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 <current firmware image>.bin -f -R
- restore old backup except programs
- install rootsh from System
- in Terminal:
sudo sh /home/backup/restore.sh
with this script (for PR<1.2 or this script (PR1.2) 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.
- This page was last modified on 21 June 2010, at 06:50.
- This page has been accessed 81,260 times.