[oe] RFC: Task-base rewrite
Marcin Juszkiewicz
openembedded at hrw.one.pl
Thu Apr 12 18:35:00 UTC 2007
Dnia niedziela, 4 marca 2007, Marcin Juszkiewicz napisał:
> During last two months I was working on new version of task-base. It
> was done from time to time without too much testing as I had many other
> things on my todo list.
>
> The main problem of task-base is that it give one package as result so
> if you want to create smaller rootfs for only few features you need to
> create own-task-base and base image on it.
>
> My version create several task-base-*, task-distro-* packages which
> cover several features one by one. Some features contain extra stuff
> only if other features are available (for example Bluetooth on USB bus
> only if distro supports BT and device support USB Host).
New version attached is based on task-base r23.
Packages.small is result of build for progear/angstrom combination (with
some changes to both configs - added some features).
What this version gives:
- each feature gets own package,
- task-boot contain ONLY stuff needed to boot
- task-distro-base contain distro addons
- task-machine-base contain machine specific addons
- task-base depend on all needed task-* packages
- ability to choose SSH daemon (dropbear, openssh, none) by distro
- ability to choose /dev/ manager (udev, devfsd, mdev) by distro
- ability to choose getty provider (tinylogin by default) by distro
With this version it is easier to create smaller rootfs - for example
image with ONLY bluetooth support is "task-boot + task-base-bluetooth".
Do some tests, post opinions - I think that this will be nice improvement
of task-base.
--
JID: hrw-jabber.org
OpenEmbedded developer/consultant
I used to think the brain is the most wonderfull organ in my body,
till I realised what was telling me that
-------------- next part --------------
DESCRIPTION = "Merge machine and distro options to create a basic machine task/package"
PR = "r24"
PACKAGES = 'task-boot \
task-base \
task-distro-base \
task-machine-base \
${@base_contains("MACHINE_FEATURES","acpi","task-base-acpi","", d)} \
${@base_contains("MACHINE_FEATURES","alsa","task-base-alsa","", d)} \
${@base_contains("MACHINE_FEATURES","apm","task-base-apm","", d)} \
${@base_contains("MACHINE_FEATURES","bluetooth","task-base-bluetooth","", d)} \
${@base_contains("MACHINE_FEATURES","ext2","task-base-ext2","", d)} \
${@base_contains("MACHINE_FEATURES","irda","task-base-irda","", d)} \
${@base_contains("MACHINE_FEATURES","keyboard","task-base-keyboard","", d)} \
${@base_contains("MACHINE_FEATURES","nfs","task-base-nfs","", d)} \
${@base_contains("MACHINE_FEATURES","pci","task-base-pci","", d)} \
${@base_contains("MACHINE_FEATURES","pcmcia","task-base-pcmcia","", d)} \
${@base_contains("MACHINE_FEATURES","phone","task-base-phone","", d)} \
${@base_contains("MACHINE_FEATURES","screen","task-base-screen","", d)} \
${@base_contains("MACHINE_FEATURES","smbfs","task-base-smbfs","", d)} \
${@base_contains("MACHINE_FEATURES","touchscreen","task-base-touchscreen","", d)} \
${@base_contains("MACHINE_FEATURES","usbgadget","task-base-usbgadget","", d)} \
${@base_contains("MACHINE_FEATURES","usbhost","task-base-usbhost","", d)} \
${@base_contains("MACHINE_FEATURES","wifi","task-base-wifi","", d)} \
${@base_contains("MACHINE_FEATURES","kernel26","task-base-kernel26","task-base-kernel24",d)} \
\
${@base_contains("DISTRO_FEATURES","cramfs","task-base-cramfs","", d)} \
${@base_contains("DISTRO_FEATURES","ipsec","task-base-ipsec","", d)} \
${@base_contains("DISTRO_FEATURES","ipv6","task-base-ipv6","", d)} \
${@base_contains("DISTRO_FEATURES","nfs","task-base-nfs","", d)} \
${@base_contains("DISTRO_FEATURES","ppp","task-base-ppp","", d)} \
${@base_contains("DISTRO_FEATURES","smbfs","task-base-smbfs","", d)} \
${@base_contains("DISTRO_FEATURES","wifi","task-base-wifi","", d)} \
'
ALLOW_EMPTY = "1"
PACKAGE_ARCH = "${MACHINE_ARCH}"
#
# udev, devfsd, mdev (from busybox) or none
#
DISTRO_DEV_MANAGER ?= "${@base_contains("MACHINE_FEATURES", "kernel26", "udev","",d)} "
#
# sysvinit, upstart
#
DISTRO_INIT_MANAGER ?= "sysvinit"
#
# tinylogin, getty
#
DISTRO_LOGIN_MANAGER ?= "tinylogin"
#
# linux-hotplug or none
#
HOTPLUG ?= "${@base_contains("MACHINE_FEATURES", "kernel24", "linux-hotplug","",d)} "
#
# dropbear, openssh or none
#
DISTRO_SSH_DAEMON ?= "dropbear"
#
# pcmciautils for >= 2.6.13-rc1, pcmcia-cs for others
#
PCMCIA_MANAGER ?= "${@base_contains('MACHINE_FEATURES', 'kernel26','pcmciautils','pcmcia-cs',d)} "
MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
#
# task-base
#
RDEPENDS_task-base = "\
task-boot \
task-distro-base \
task-machine-base \
${DISTRO_SSH_DAEMON} \
${HOTPLUG} \
\
${@base_contains('MACHINE_FEATURES', 'kernel26','task-base-kernel26','task-base-kernel24',d)} \
${@base_contains('MACHINE_FEATURES', 'apm', 'task-base-apm', '',d)} \
${@base_contains('MACHINE_FEATURES', 'acpi', 'task-base-acpi', '',d)} \
${@base_contains('MACHINE_FEATURES', 'keyboard', 'task-base-keyboard', '',d)} \
\
${@base_contains('COMBINED_FEATURES', 'alsa', 'task-base-alsa', '',d)} \
${@base_contains('COMBINED_FEATURES', 'ext2', 'task-base-ext2', '',d)} \
${@base_contains('COMBINED_FEATURES', 'irda', 'task-base-irda', '',d)} \
${@base_contains('COMBINED_FEATURES', 'pci', 'task-base-pci', '',d)} \
${@base_contains('COMBINED_FEATURES', 'pcmcia', 'task-base-pcmcia', '',d)} \
${@base_contains('COMBINED_FEATURES', 'usbhost', 'task-base-usbhost', '',d)} \
${@base_contains('COMBINED_FEATURES', 'bluetooth', 'task-base-bluetooth', '',d)} \
${@base_contains('COMBINED_FEATURES', 'wifi', 'task-base-wifi', '',d)} \
${@base_contains('COMBINED_FEATURES', 'uboot', 'task-base-uboot', '',d)} \
${@base_contains('COMBINED_FEATURES', 'redboot', 'task-base-redboot', '',d)} \
\
${@base_contains('DISTRO_FEATURES', 'nfs', 'task-base-nfs', '',d)} \
${@base_contains('DISTRO_FEATURES', 'ipsec', 'task-base-ipsec', '',d)} \
${@base_contains('DISTRO_FEATURES', 'ppp', 'task-base-ppp', '',d)} \
${@base_contains('DISTRO_FEATURES', 'raid', 'task-base-raid', '',d)} \
"
RDEPENDS_task-distro-base = "${DISTRO_EXTRA_RDEPENDS}"
RRECOMMENDS_task-distro-base = "${DISTRO_EXTRA_RRECOMMENDS}"
RDEPENDS_task-machine-base = "${MACHINE_EXTRA_RDEPENDS}"
RRECOMMENDS_task-machine-base = "${MACHINE_EXTRA_RRECOMMENDS}"
#
# task-boot
# Minimal set of packages - needed to boot
#
RDEPENDS_task-boot = "\
kernel \
base-files \
base-passwd \
busybox \
initscripts \
modutils-initscripts \
netbase \
${DISTRO_DEV_MANAGER} \
${DISTRO_INIT_MANAGER} \
${DISTRO_LOGIN_MANAGER} \
${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}"
RRECOMMENDS_task-boot = "\
${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}"
RDEPENDS_task-base-kernel24 = "\
modutils-depmod"
RDEPENDS_task-base-kernel26 = "\
sysfsutils \
module-init-tools"
RDEPENDS_task-base-keyboard = "\
keymaps"
RDEPENDS_task-base-pci = "\
pciutils"
RRECOMMENDS_task-base-kernel26 = "\
kernel-module-input \
kernel-module-uinput"
RDEPENDS_task-base-acpi = "\
acpid"
RDEPENDS_task-base-apm = "\
apm \
apmd \
${@base_contains('MACHINE_FEATURES', 'kernel24', 'network-suspend-scripts', '',d)}"
RDEPENDS_task-base-ext2 = "\
hdparm \
e2fsprogs \
e2fsprogs-e2fsck \
e2fsprogs-mke2fs"
RDEPENDS_task-base-alsa = "\
alsa-utils-alsactl \
alsa-utils-alsamixer"
RRECOMMENDS_task-base-alsa = "\
alsa-state \
kernel-module-snd-mixer-oss \
kernel-module-snd-pcm-oss"
RDEPENDS_task-base-pcmcia = "\
${PCMCIA_MANAGER} \
${@base_contains('DISTRO_FEATURES', 'wifi', 'prism3-firmware', '',d)} \
${@base_contains('DISTRO_FEATURES', 'wifi', 'prism3-support', '',d)} \
${@base_contains('DISTRO_FEATURES', 'wifi', 'spectrum-fw', '',d)} \
${@base_contains('DISTRO_FEATURES', 'wifi', 'hostap-conf', '',d)} \
${@base_contains('DISTRO_FEATURES', 'wifi', 'orinoco-conf', '',d)}"
RRECOMMENDS_task-base-pcmcia = "\
${@base_contains('MACHINE_FEATURES', 'kernel26', '${task-base-pcmcia26}', '${task-base-pcmcia24}',d)} \
kernel-module-pcmcia \
kernel-module-airo-cs \
kernel-module-pcnet-cs \
kernel-module-serial-cs \
kernel-module-ide-cs \
kernel-module-ide-disk \
"
task-base-pcmcia24 = "\
${@base_contains('DISTRO_FEATURES', 'wifi', 'hostap-modules-cs', '',d)} \
${@base_contains('DISTRO_FEATURES', 'wifi', 'orinoco-modules-cs', '',d)}"
task-base-pcmcia26 = "\
${@base_contains('DISTRO_FEATURES', 'wifi', 'kernel-module-hostap-cs', '',d)} \
${@base_contains('DISTRO_FEATURES', 'wifi', 'kernel-module-orinoco-cs', '',d)} \
${@base_contains('DISTRO_FEATURES', 'wifi', 'kernel-module-spectrum-cs', '',d)}"
RDEPENDS_task-base-bluetooth = "\
blueprobe \
bluez-utils"
RRECOMMENDS_task-base-bluetooth = "\
kernel-module-bluetooth \
kernel-module-l2cap \
kernel-module-rfcomm \
kernel-module-hci-vhci \
kernel-module-bnep \
kernel-module-hidp \
kernel-module-hci-uart \
kernel-module-sco \
${@base_contains('COMBINED_FEATURES', 'usbhost', 'kernel-module-hci-usb', '',d)} \
${@base_contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-bluetooth3c-cs', '',d)} \
${@base_contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-bluecard-cs', '',d)} \
${@base_contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-bluetoothuart-cs', '',d)} \
${@base_contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-dtl1-cs', '',d)}"
RDEPENDS_task-base-irda = "\
irda-utils"
RRECOMMENDS_task-base-irda = "\
kernel-module-pxaficp-ir \
kernel-module-irda \
kernel-module-ircomm \
kernel-module-ircomm-tty \
kernel-module-irlan \
${@base_contains('DISTRO_FEATURES', 'ppp', 'kernel-module-irnet', '',d)} \
kernel-module-irport \
kernel-module-irtty \
kernel-module-irtty-sir \
kernel-module-sir-dev \
${@base_contains('COMBINED_FEATURES', 'usbhost', 'kernel-module-ir-usb', '',d)} "
RRECOMMENDS_task-base-usbgadget = "\
kernel-module-pxa27x_udc \
kernel-module-gadgetfs \
kernel-module-g-file-storage \
kernel-module-g-serial \
kernel-module-g-ether"
RDEPENDS_task-base-usbhost = "\
usbutils "
RRECOMMENDS_task-base-usbhost = "\
kernel-module-uhci-hcd \
kernel-module-ohci-hcd \
kernel-module-ehci-hcd \
kernel-module-usbcore \
kernel-module-usbhid \
kernel-module-usbnet \
kernel-module-sd-mod \
kernel-module-scsi-mod \
kernel-module-usbmouse \
kernel-module-mousedev \
kernel-module-usbserial \
kernel-module-usb-storage "
RDEPENDS_task-base-uboot = "\
uboot-utils"
RDEPENDS_task-base-redboot = "\
fis"
RDEPENDS_task-base-ppp = "\
ppp \
ppp-dialin"
RRECOMMENDS_task-base-ppp = "\
kernel-module-ppp-async \
kernel-module-ppp-deflate \
kernel-module-ppp-mppe"
RDEPENDS_task-base-ipsec = "\
openswan"
RRECOMMENDS_task-base-ipsec = "\
kernel-module-ipsec"
RDEPENDS_task-base-wifi = "\
wireless-tools \
${@base_contains('COMBINED_FEATURES', 'pcmcia', 'hostap-utils', '',d)} \
${@base_contains('COMBINED_FEATURES', 'pci', 'hostap-utils', '',d)} \
wpa-supplicant"
RRECOMMENDS_task-base-wifi = "\
kernel-module-ieee80211-crypt \
kernel-module-ieee80211-crypt-ccmp \
kernel-module-ieee80211-crypt-tkip \
kernel-module-ieee80211-crypt-wep \
kernel-module-ecb \
kernel-module-arc4 \
kernel-module-michael-mic \
kernel-module-aes"
RRECOMMENDS_task-base-smbfs = "\
kernel-module-cifs \
kernel-module-smbfs"
RRECOMMENDS_task-base-cramfs = "\
kernel-module-cramfs"
RDEPENDS_task-base-nfs = "\
portmap"
RRECOMMENDS_task-base-nfs = "\
kernel-module-nfs "
RDEPENDS_task-base-raid = "\
"
RDEPENDS_task-base-screen = "\
"
RDEPENDS_task-base-touchscreen = "\
tslib-tests \
tslib-calibrate "
RDEPENDS_task-base-ipv6 = "\
"
RRECOMMENDS_task-base-ipv6 = "\
kernel-module-ipv6 "
# Tosort
# kernel-module-nvrd
# kernel-module-mip6-mn
# kernel-module-tun
# kernel-module-ide-disk
# kernel-module-ide-probe-mo
# kernel-module-loop
# kernel-module-vfat
# kernel-module-ext2
# kernel-module-sco
# kernel-module-af_packet
# kernel-module-ip-gre
# kernel-module-ip-tables
# kernel-module-ipip
# kernel-module-des
# kernel-module-md5
# kernel-module-8250
# Should be DISTRO_EXTRA_RRECOMMENDS: lrzsz
-------------- next part --------------
Package: task-base-acpi
Depends: acpid
Package: task-base-alsa
Depends: alsa-utils-alsactl, alsa-utils-alsamixer
Recommends: alsa-state, kernel-module-snd-mixer-oss, kernel-module-snd-pcm-oss
Package: task-base-ext2
Depends: hdparm, e2fsprogs, e2fsprogs-e2fsck, e2fsprogs-mke2fs
Package: task-base-ipsec
Depends: openswan
Recommends: kernel-module-ipsec
Package: task-base-ipv6
Recommends: kernel-module-ipv6
Package: task-base-irda
Depends: irda-utils
Recommends: kernel-module-pxaficp-ir, kernel-module-irda, kernel-module-ircomm, kernel-module-ircomm-tty, kernel-module-irlan, kernel-module-irnet, kernel-module-irport, kernel-module-irtty, kernel-module-irtty-sir, kernel-module-sir-dev, kernel-module-ir-usb
Package: task-base-kernel26
Depends: sysfsutils, module-init-tools
Recommends: kernel-module-input, kernel-module-uinput
Package: task-base-nfs
Depends: portmap
Recommends: kernel-module-nfs
Package: task-base-pci
Depends: pciutils
Package: task-base-pcmcia
Depends: pcmciautils, prism3-firmware, prism3-support, spectrum-fw, hostap-conf, orinoco-conf
Recommends: kernel-module-hostap-cs, kernel-module-orinoco-cs, kernel-module-spectrum-cs, kernel-module-pcmcia, kernel-module-airo-cs, kernel-module-pcnet-cs, kernel-module-serial-cs, kernel-module-ide-cs, kernel-module-ide-disk
Package: task-base-ppp
Depends: ppp, ppp-dialin
Recommends: kernel-module-ppp-async, kernel-module-ppp-deflate, kernel-module-ppp-mppe
Package: task-base-screen
Package: task-base-smbfs
Recommends: kernel-module-cifs, kernel-module-smbfs
Package: task-base-touchscreen
Depends: tslib-tests, tslib-calibrate
Package: task-base-usbhost
Depends: usbutils
Recommends: kernel-module-uhci-hcd, kernel-module-ohci-hcd, kernel-module-ehci-hcd, kernel-module-usbcore, kernel-module-usbhid, kernel-module-usbnet, kernel-module-sd-mod, kernel-module-scsi-mod, kernel-module-usbmouse, kernel-module-mousedev, kernel-module-usbserial, kernel-module-usb-storage
Package: task-base-wifi
Depends: wireless-tools, hostap-utils, hostap-utils, wpa-supplicant
Recommends: kernel-module-ieee80211-crypt, kernel-module-ieee80211-crypt-ccmp, kernel-module-ieee80211-crypt-tkip, kernel-module-ieee80211-crypt-wep, kernel-module-ecb, kernel-module-arc4, kernel-module-michael-mic, kernel-module-aes
Package: task-base
Depends: task-boot, task-distro-base, task-machine-base, dropbear, task-base-kernel26, task-base-acpi, task-base-alsa, task-base-ext2, task-base-irda, task-base-pci, task-base-pcmcia, task-base-usbhost, task-base-nfs, task-base-ipsec, task-base-ppp
Package: task-boot
Depends: kernel, base-files, base-passwd, busybox, initscripts, modutils-initscripts, netbase, udev, sysvinit, tinylogin
Package: task-distro-base
Depends: update-modules, module-init-tools, modutils-initscripts, sysvinit, initscripts, sysvinit-pidof, psplash, netbase, dropbear, angstrom-version, ipkg, ipkg-collateral, util-linux-mount, util-linux-umount, avahi-daemon, avahi-autoipd, tslib-tests, tslib-calibrate, gdb, strace, procps
Recommends: kernel-module-vfat, kernel-module-ext2
Package: task-machine-base
Recommends: progear-ac, progear-battery, kernel-module-snd-ali5451, kernel-module-i2c-ali1535, kernel-module-i2c-ali15x3, kernel-module-yenta-socket
More information about the Openembedded-devel
mailing list