Linux: Debian: Minimal ARM filesystem
Contents
[hide]Overview
Debian Linux for ARM processors provides thousands of software packages. CompuLab provides minimal Debian filesystem that can be used as a basis for custom filesystem creation. The minimal filesystem packages include archive of basic Debian system created with debootsrap.
Suites
The basic Debian system is available for the following Debian suites:
Custom filesystem development
The basic Debian system allows development of custom filesystem images either on-target in NFS-rooted environment or on-host using QEMU ARM emulation.
NFS-rooted environment
- Extract the basic Debian filesystem to a directory on the host workstation and export that directory through NFS:
mkdir -p /path/to/armel/debian/sid cd /path/to/armel/debian/sid sudo tar xjvf /path/to/sid-minimal-armel.tar.bz2 sudo sh -c 'echo "/path/to/armel/debian/sid 192.168.0.0/24(rw,no_root_squash,sync)" >> /etc/exports' sudo exportfs -a
- Ensure that kernel command line contains parameters required to boot the target system with root on NFS, for example
setenv bootargs "root=/dev/nfs nfsroot=<hostip>:/path/to/armel/debian/sid ip=dhcp console=ttyS2,38400"
- Boot the target.
- Login as root, password 111111
- Use apt-get package handling utility to install required packages
QEMU environment
- Setup binfmt_misc support and statically built QEMU as described in Chroot with QEMU section of the Linux Development for ARM modules article.
- Extract the basic Debian filesystem to a directory on the host workstation
mkdir -p /path/to/armel/debian/sid cd /path/to/armel/debian/sid sudo tar xjvf /path/to/sid-minimal-armel.tar.bz2
- Copy static QEMU into the basic Debian system:
cp /path/to/static/qemu-arm* /path/to/armel/debian/sid/usr/local/bin
- Enter the ARM Debian environment:
sudo chroot /path/to/armel/debian/sid /bin/sh
- Use apt-get package handling utility to install required packages
Deployment
Reducing target filesystem size
![]() |
The following commands must be executed on target or in chroot'ed environment. Execution of the below commands on the host system may severely damage it! |
- Remove packages that were automatically installed to satisfy dependencies for some package and that are no more needed
apt-get --purge autoremove
- Remove packages that are not needed on the target system, for example:
apt-get purge man
- Clean local repository of retrieved package files
apt-get clean
- If the target is not intended to run package management tools remove Debian package databases:
find /var/lib/dpkg/ /var/lib/apt -type f -exec rm {} \;
- Remove unneeded data in /usr/share, for instance
rm -fr /usr/share/doc/ /usr/share/info/
Creating NAND flash image
After the filesystem modifications are complete follow the Creating NAND flash images guide to create an image ready for deployment onto the system NAND flash.