# HG changeset patch # User Pascal Bellard # Date 1443815105 -7200 # Node ID 371673f39e46f0575f86dca9f25569f14f33edf0 # Parent a3e929634247353bab5385bb7929a1990a31f3ac Refresh, remove kernel*, add linux diff -r a3e929634247 -r 371673f39e46 base-tiny/receipt --- a/base-tiny/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/base-tiny/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -2,49 +2,19 @@ PACKAGE="base-tiny" VERSION="1.0" -CATEGORY="configuration" +CATEGORY="misc" SHORT_DESC="Tiny SliTaz base configuration files" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="BSD" WEB_SITE="http://tiny.slitaz.org/" AUTO_SELECTION="always" -CONFIG_FILES="/etc/network.conf /etc/passwd /etc/shadow \ +CONFIG_FILES="/etc/network.conf /etc/rcS.conf /etc/passwd /etc/shadow \ /root/.profile /etc/fstab /etc/init.d/local.sh" -# Rules to configure and make the package. -compile_rules() -{ - mkdir -p fs/var/lib fs/etc - echo "none" > fs/var/lib/detected-modules - echo "LANG=C" > fs/etc/locale.conf - while read pkg file ; do - if [ ! -s $pkg*/fs$file ]; then - tazpkg get $pkg - tazpkg extract $pkg*.tazpkg - fi - mkdir -p fs$(dirname $file) - mv $pkg*/fs$file fs$(dirname $file) || return 1 - done << EOT -busybox /etc/udhcpd.conf -busybox /etc/inetd.conf -slitaz-base-files /etc/fstab -slitaz-base-files /etc/group -slitaz-base-files /etc/passwd -slitaz-base-files /etc/gshadow -slitaz-base-files /etc/shadow -slitaz-boot-scripts /etc/inittab -slitaz-boot-scripts /etc/network.conf -slitaz-boot-scripts /etc/init.d/local.sh -slitaz-boot-scripts /etc/rcS.conf -EOT - sed -i 's/:x:/:!:/' fs/etc/passwd - sed -i 's/UDEV=.*/UDEV="no"/;s/hwconf.sh l/l/' fs/etc/rcS.conf -} - # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { - cp -a fs/. $fs + cp -a $stuff/. $fs } config_form() @@ -155,4 +125,7 @@ [ -n "$RC_LOCAL" ] && dos2unix >> $1/etc/init.d/local.sh < +# inetd will re-read this file whenever it gets that signal. +# +# +#:INTERNAL: Internal services +# It is generally considered safer to keep these off. +echo stream tcp nowait root internal +echo dgram udp wait root internal +#discard stream tcp nowait root internal +#discard dgram udp wait root internal +daytime stream tcp nowait root internal +daytime dgram udp wait root internal +#chargen stream tcp nowait root internal +#chargen dgram udp wait root internal +time stream tcp nowait root internal +time dgram udp wait root internal + +# These are standard services. +# +#tftp dgram udp wait root tftpd tftpd -r /boot +#systat stream tcp nowait nobody ps +#netstat stream tcp nowait root netstat netstat -a +#http stream tcp nowait root httpd httpd -i -u 80:80 +#ftp stream tcp nowait root ftpd ftpd -w /home/ftp +#telnet stream tcp nowait root telnetd telnetd -i diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/init.d/local.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/init.d/local.sh Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,9 @@ +#!/bin/sh +# /etc/init.d/local.sh - Local startup commands. +# +# All commands here will be executed at boot time. +# +. /etc/init.d/rc.functions + +echo "Starting local startup commands... " + diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/init.d/network.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/init.d/network.sh Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,95 @@ +#!/bin/sh +# /etc/init.d/network.sh - Network initialization boot script. +# Config file is: /etc/network.conf +# +. /etc/init.d/rc.functions + +if [ -z "$2" ]; then + . /etc/network.conf +else + . $2 +fi + +boot() { + # Set hostname. + echo -n "Setting hostname..." + hostname -F /etc/hostname + status + + # Configure loopback interface. + echo -n "Configuring loopback..." + ifconfig lo 127.0.0.1 up + route add 127.0.0.1 lo + status +} + +# Use ethernet +eth() { + ifconfig $INTERFACE up +} + +# For a dynamic IP with DHCP. +dhcp() { + if [ "$DHCP" = "yes" ] ; then + echo "Starting udhcpc client on: $INTERFACE..." + udhcpc -b -T 1 -A 12 -i $INTERFACE -p \ + /var/run/udhcpc.$INTERFACE.pid + fi +} + +# For a static IP. +static_ip() { + if [ "$STATIC" = "yes" ] ; then + echo "Configuring static IP on $INTERFACE: $IP..." + ifconfig $INTERFACE $IP netmask $NETMASK up + route add default gateway $GATEWAY + # Multi-DNS server in $DNS_SERVER. + mv /etc/resolv.conf /tmp/resolv.conf.$$ + for NS in $DNS_SERVER + do + echo "nameserver $NS" >> /etc/resolv.conf + done + for HELPER in /etc/ipup.d/*; do + [ -x $HELPER ] && $HELPER $INTERFACE $DNS_SERVER + done + fi +} + +# Stopping everything +Stop() { + echo "Stopping all interfaces" + ifconfig $INTERFACE down + + echo "Killing all daemons" + killall udhcpc +} + +Start() { + eth + dhcp + static_ip +} + +# looking for arguments: +if [ -z "$1" ]; then + boot + Start +else + case $1 in + start) + Start ;; + stop) + Stop ;; + restart) + Stop + Start ;; + *) + echo "" + echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]" + echo "" + echo -e " Default configuration file is \033[1m/etc/network.conf\033[0m" + echo -e " You can specify another configuration file in the second argument:" + echo -e " \033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart] file.conf" + echo "" ;; + esac +fi diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/init.d/rc.functions --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/init.d/rc.functions Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,28 @@ +#!/bin/sh +# /etc/init.d/rc.functions: SliTaz boot scripts functions. +# + +# Status functions. +status() { + echo -en "\\033[70G[ " + if [ $? = 0 ]; then + echo -en "\\033[1;32mOK" + else + echo -en "\\033[1;31mFailed" + fi + echo -e "\\033[0;39m ]" +} + +# Check daemon with pidfile: usage check_pidfile $PIDFILE $DAEMON +active_pidfile() +{ + if [ ! -e $1 ]; then + return 1 + elif grep -qs "Name:.$(basename $2)$" \ + /proc/$(sed 's/[^0-9]//g' < $1 | head -n 1)/status ; then + return 0 + else + rm -f $1 + return 2 + fi +} diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/init.d/rc.shutdown --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/init.d/rc.shutdown Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,32 @@ +#!/bin/sh +# /etc/init.d/rc.shutdown - This script is used by /etc/inittab to stop +# all daemons and shutdown the system. +# +. /etc/init.d/rc.functions +. /etc/rcS.conf + +log=/var/lib/shutdown.log + +# Bold info message with uptime +clear && echo "System is going down for reboot or halt." > $log +uptime >> $log + +# Stop all daemons started at boot time. +for daemon in $RUN_DAEMONS +do + if [ -x /etc/init.d/$daemon ]; then + /etc/init.d/$daemon stop >> $log + fi +done + +# Sync all filesystems. +sync + +# Swap off. +swapoff -a + +# Kill all processes. +killall5 + +# Umount filesystems. +umount -a -r 2>/dev/null diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/init.d/rcS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/init.d/rcS Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,249 @@ +#!/bin/sh +# /etc/init.d/rcS - Initial boot script for SliTaz GNU/Linux. +# Config file is : /etc/rcS.conf +# +# rcS is the main initialization script used to check fs, mount, clean, +# run scripts and start daemons. +# +. /etc/init.d/rc.functions +. /etc/rcS.conf + +# Set TZ and boot time. +[ -s /etc/TZ ] && export TZ="$(cat /etc/TZ)" +[ "$bootdate" ] || bootdate=$(date +%s) + +case "$1" in + +readonly) + +echo "Processing /etc/init.d/rcS..." + +# Mount /proc. +echo -n "Mounting proc filesystem..." +mount proc +status + +if [ "$EARLY_RUN_SCRIPTS" ]; then + echo "Executing early initialization scripts..." + for script in $EARLY_RUN_SCRIPTS + do + [ -x /etc/init.d/$script ] && /etc/init.d/$script + done +fi + +# Load all modules listed in config file. +if [ "$LOAD_MODULES" ]; then + echo -n "Loading modules..." + for mod in $LOAD_MODULES + do + echo -n " ${mod%%|*}" + modprobe ${mod//|/ } + done + status + [ "$KEEP_MODULES" ] || rm -rf /lib/modules +fi + +# Mount /sys. +echo -n "Mounting sys filesystem..." +mount sysfs +status + +echo -n "Updating /dev..." +for i in /sys/block/*/dev /sys/block/*/*/dev ; do + [ -s "$i" ] || continue + n=${i%/dev} + n=/dev/${n##*/} + [ -e $n ] && continue + echo -n " ${n##*/}" + mknod $n b $(sed 's/:/ /' < $i) +done +status + +# Before mounting filesystems we check fs specified in the file +# /etc/rcS.conf and variable $CHECK_FS. +if [ "$CHECK_FS" ]; then + mount -o remount,ro / + for i in $CHECK_FS + do + echo "Checking filesystem on : $i" + e2fsck -p $i + done +fi + +# Remount rootfs rw. +echo "Remounting rootfs read/write..." +mount -o remount,rw / +;; + +readwrite) + +# Mount filesystems in /etc/fstab. +echo "Mounting filesystems in fstab..." +mount -a +;; + +logged) + +# Store boot messages to log files. +dmesg > /var/log/dmesg.log & + +# Parse cmdline args for earlier boot options. All other boot options +# are in /etc/init./bootopts.sh. +echo -n "Searching for early boot options..." +for opt in $(cat /proc/cmdline) +do + case $opt in + cdrom=*) + export CDROM=${opt#cdrom=} ;; + modprobe=*) + export MODPROBE="yes" ;; + config=*) + export CONFIG=${opt#config=} ;; + *) + continue ;; + esac +done +status + +# Clean up the system. +if [ "$CLEAN_UP_SYSTEM" = "yes" ]; then + echo -n "Cleaning up the system..." + find /var/run -name "*.pid" -type f | xargs rm -f + rm -rf /tmp /var/lock/* + mkdir -p /tmp && chmod 1777 /tmp + status +else + echo "System clean up is disabled in /etc/rcS.conf..." + echo -n "Keeping all tmp and pid files..." + status +fi + +# Create /dev/cdrom if needed (symlink does not exist on LiveCD). +# Also add /dev/cdrom to fstab if entry does not exist. +if [ "$CDROM" ]; then + DRIVE_NAME=${CDROM#/dev/} +else + DRIVE_NAME=$(fgrep -s "drive name" /proc/sys/dev/cdrom/info | cut -f 3) +fi +if [ -n "$DRIVE_NAME" -a ! "$(readlink /dev/cdrom)" ]; then + echo -n "Creating symlink : /dev/cdrom..." + ln -s /dev/$DRIVE_NAME /dev/cdrom + ln -s /dev/$DRIVE_NAME /dev/dvd + chmod 0666 /dev/cdrom /dev/dvd /dev/$DRIVE_NAME + status +fi +if ! fgrep -q "/dev/cdrom" /etc/fstab; then + echo -n "Adding /dev/cdrom to fstab..." + echo '/dev/cdrom /media/cdrom iso9660 user,ro,noauto 0 0' \ + >> /etc/fstab + status +fi + +# Handle kernel cmdline parameter modprobe= +if [ "$MODPROBE" ]; then + MODULES=$(sed -e 's/.* modprobe=\([^ ]*\).*/\1/' -e 's/,/\n/g' < /proc/cmdline) + for i in $MODULES; do + echo -n "Loading kernel module $i" + modprobe $i + status + done +fi + +# Handle kernel cmdline parameter config=, to source a +# disk init script +if [ "$CONFIG" ]; then + DEVICE=${CONFIG%,*} + SCRIPT=${CONFIG#*,} + echo "Probing $DEVICE... " + if ! mount -r $DEVICE /mnt; then + if echo $DEVICE | grep -Eq "/dev/sd|UUID=|LABEL="; then + USBDELAY=$(cat /sys/module/usb_storage/parameters/delay_use) + USBDELAY=$((1+$USBDELAY)) + echo "$DEVICE is potentially a USB device: sleep for $USBDELAY seconds" + sleep $USBDELAY + fi + if ! mount -r $DEVICE /mnt; then + CONFIG="" + fi + fi + echo -n "Source $SCRIPT from $DEVICE..." + if [ "$CONFIG" ]; then + . /mnt/$SCRIPT + umount /mnt 2> /dev/null || true + fi + status +fi + +# Mount /proc/bus/usb. +if [ -d /proc/bus/usb ]; then + echo -n "Mounting /proc/bus/usb filesystem..." + mount -t usbfs usbfs /proc/bus/usb + status +fi + +# Start syslogd and klogd. +if [ "$KERNEL_LOG_DAEMONS" = "yes" ]; then + echo -n "Starting system log deamon: syslogd..." + syslogd -s $SYSLOGD_ROTATED_SIZE && status + echo -n "Starting kernel log daemon: klogd..." + klogd && status +else + echo "Kernel log daemons are disabled in /etc/rc.conf..." +fi + +[ -d /usr/share/kmap ] && +echo "Load keymap $(basename /usr/share/kmap/* .kmap)" && +cat /usr/share/kmap/* | loadkmap && +rm -rf /usr/share/kmap + +# Start all scripts specified with $RUN_SCRIPTS. +echo "Executing all initialization scripts..." +for script in $RUN_SCRIPTS +do + [ -x /etc/init.d/$script ] && /etc/init.d/$script +done + +# Re-source main config file. In Live mode, daemons list can be modified +# by boot options (screen=text will remove slim). +. /etc/rcS.conf + +# Start all daemons specified with $RUN_DAEMONS. +echo "Starting all daemons specified in /etc/rcS.conf..." +for daemon in $RUN_DAEMONS +do + if [ -x /etc/init.d/$daemon ]; then + /etc/init.d/$daemon start + fi +done + +# Reset screen and display a bold message. +if [ "$MESSAGE" ]; then + reset + echo -e "\033[1m$MESSAGE\033[0m" +fi + +# Display and log boot time. +time=$(($(date +%s) - $bootdate)) +echo $time > /var/log/boot-time +echo "SliTaz boot time: ${time}s" +;; + +*) +if [ ! -s /dev/shm/boot.log ]; then + mount -t devpts devpts /dev/pts + mount -t tmpfs tmpfs /dev/shm +fi +script -aqc '/etc/init.d/rcS readonly' /dev/shm/boot.log +mv -f /dev/shm/boot.log /boot.log +umount /dev/shm +script -aqc '/etc/init.d/rcS readwrite' /boot.log +last=.9 +for i in .8 .7 .6 .5 .4 .3 .2 .1 .0 '' ; do + mv -f /var/log/boot.log$i /var/log/boot.log$last 2>/dev/null + last=$i +done +mv -f /boot.log /var/log/boot.log +script -aqc '/etc/init.d/rcS logged' /var/log/boot.log +;; + +esac diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/inittab --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/inittab Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,16 @@ +# /etc/inittab: init configuration for SliTaz GNU/Linux. +# Boot-time system configuration/initialization script. +# +::sysinit:/etc/init.d/rcS + +# /sbin/getty respawn shell invocations for selected ttys. +tty1::askfirst:/sbin/getty 38400 tty1 +tty2::askfirst:/sbin/getty 38400 tty2 + +# Stuff to do when restarting the init +# process, or before rebooting. +::restart:/etc/init.d/rc.shutdown +::restart:/init +::ctrlaltdel:/sbin/reboot +::shutdown:/etc/init.d/rc.shutdown + diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/issue --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/issue Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,2 @@ +SliTaz GNU/Linux Kernel \r \l + diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/motd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/motd Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,6 @@ + + Welcome to the Open Source World! + + SliTaz GNU/Linux is distributed in the hope that it will be useful, + but with ABSOLUTELY NO WARRANTY. + diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/mtab --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/mtab Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,1 @@ +/proc/mounts \ No newline at end of file diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/network.conf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/network.conf Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,24 @@ +# /etc/network.conf: SliTaz system wide networking configuration. +# Config file used by: /etc/init.d/network.sh +# + +# Set default interface. +INTERFACE="eth0" + +# Dynamic IP address. +# Enable/disable DHCP client at boot time. +DHCP="no" + +# Static IP address. +# Enable/disable static IP at boot time. +STATIC="no" + +# Set IP address and netmask for a static IP. +IP="" +NETMASK="" + +# Set route gateway for a static IP. +GATEWAY="" + +# Set DNS server for a static IP. +DNS_SERVER="" diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/networks --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/networks Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,1 @@ +localnet 127.0.0.1 diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/passwd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/passwd Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,3 @@ +root:x:0:0:Root Administrator:/root:/bin/sh +nobody:x:99:99:Unprivileged User:/dev/null:/bin/false +www:x:80:80:Web Server User:/var/www:/bin/false diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/profile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/profile Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,36 @@ +# /etc/profile: System-wide .profile file for the Bourne shells + +PATH="/usr/sbin:/usr/bin:/sbin:/bin" +LD_LIBRARY_PATH="/usr/lib:/lib" + +# Prompt format for Ash +# Light green and blue colored prompt. +PS1='\u@\h:\w\$ ' + +# Max 64M for programs (prevent memory leak crashes) +ulimit -d 65536 +ulimit -m 65536 + +# Screen display for X and encoding for GTK+ apps. +[ -n "$DISPLAY" ] || DISPLAY=:0.0 +G_FILENAME_ENCODING=UTF-8 + +# Export all variables defined above and set mask. +# +export PATH LD_LIBRARY_PATH PS1 DISPLAY G_FILENAME_ENCODING +umask 022 + +# Locale and timezone settings. +# +if [ -s "/etc/locale.conf" ]; then + . /etc/locale.conf + export LANG LC_ALL +fi +if [ -s "/etc/TZ" ]; then + TZ=`cat /etc/TZ` + export TZ +fi +ip=$(ifconfig eth0 2> /dev/null | awk '/inet addr/ { print substr($2,6) }') +case "$TERM" in +xterm*|rxvt*) echo -ne "\033]0;$(hostname) $(cat /etc/slitaz-release) $ip\007";; +esac diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/rcS.conf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/rcS.conf Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,32 @@ +# /etc/rcS.conf - Initial boot script configuration for SliTaz GNU/Linux. +# Config file used by /etc/init.d/rcS +# + +# Clean up the system removing all tmp and pid files. +CLEAN_UP_SYSTEM="yes" + +# Filesystems to check integrity of at boot time. You should check the +# rootfs (where SliTaz is installed) and all partitions listed in +# /etc/fstab. Example: CHECK_FS="/dev/hda5 /dev/hdb1" +CHECK_FS="" + +# Start Kernel log daemons (syslogd and klogd). +KERNEL_LOG_DAEMONS="yes" +SYSLOGD_ROTATED_SIZE="60" + +# Kernel modules to automatically load at boot time +LOAD_MODULES="" +KEEP_MODULES="" + +# Initialization scripts to run at boot time. Boot order is important. +# Note that the local.sh script exists to let you quickly add +# some local startup commands. +RUN_SCRIPTS="network.sh local.sh" +EARLY_RUN_SCRIPTS="" + +# Daemons to start at boot time. +# Boot order is not really important. +RUN_DAEMONS="" + +# Pre login bold message. +MESSAGE="Welcome to your box." diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/securetty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/securetty Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,11 @@ +# /etc/securetty: List of terminals on which root is allowed to login. +# +console + +# For people with serial port consoles +ttyS0 + +# Standard consoles +tty1 +tty2 +tty3 diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/services --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/services Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,317 @@ +# /etc/services: +# $Id: services,v 1.4 2000/01/23 21:03:36 notting Exp $ +# +# Network services, Internet style +# +# Note that it is presently the policy of IANA to assign a single well-known +# port number for both TCP and UDP; hence, most entries here have two entries +# even if the protocol doesn't support UDP operations. +# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports +# are included, only the more common ones. + +tcpmux 1/tcp # TCP port service multiplexer +echo 7/tcp +echo 7/udp +discard 9/tcp sink null +discard 9/udp sink null +systat 11/tcp users +daytime 13/tcp +daytime 13/udp +netstat 15/tcp +qotd 17/tcp quote +msp 18/tcp # message send protocol +msp 18/udp # message send protocol +chargen 19/tcp ttytst source +chargen 19/udp ttytst source +ftp-data 20/tcp +ftp 21/tcp +fsp 21/udp fspd +ssh 22/tcp # SSH Remote Login Protocol +ssh 22/udp # SSH Remote Login Protocol +telnet 23/tcp +# 24 - private +smtp 25/tcp mail +# 26 - unassigned +time 37/tcp timserver +time 37/udp timserver +rlp 39/udp resource # resource location +nameserver 42/tcp name # IEN 116 +whois 43/tcp nicname +re-mail-ck 50/tcp # Remote Mail Checking Protocol +re-mail-ck 50/udp # Remote Mail Checking Protocol +domain 53/tcp nameserver # name-domain server +domain 53/udp nameserver +mtp 57/tcp # deprecated +bootps 67/tcp # BOOTP server +bootps 67/udp +bootpc 68/tcp # BOOTP client +bootpc 68/udp +tftp 69/udp +gopher 70/tcp # Internet Gopher +gopher 70/udp +rje 77/tcp netrjs +finger 79/tcp +www 80/tcp http # WorldWideWeb HTTP +www 80/udp # HyperText Transfer Protocol +link 87/tcp ttylink +kerberos 88/tcp kerberos5 krb5 # Kerberos v5 +kerberos 88/udp kerberos5 krb5 # Kerberos v5 +supdup 95/tcp +# 100 - reserved +hostnames 101/tcp hostname # usually from sri-nic +iso-tsap 102/tcp tsap # part of ISODE. +csnet-ns 105/tcp cso-ns # also used by CSO name server +csnet-ns 105/udp cso-ns +# unfortunately the poppassd (Eudora) uses a port which has already +# been assigned to a different service. We list the poppassd as an +# alias here. This should work for programs asking for this service. +# (due to a bug in inetd the 3com-tsmux line is disabled) +#3com-tsmux 106/tcp poppassd +#3com-tsmux 106/udp poppassd +rtelnet 107/tcp # Remote Telnet +rtelnet 107/udp +pop2 109/tcp pop-2 postoffice # POP version 2 +pop2 109/udp pop-2 +pop3 110/tcp pop-3 # POP version 3 +pop3 110/udp pop-3 +sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP +sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP +auth 113/tcp authentication tap ident +sftp 115/tcp +uucp-path 117/tcp +nntp 119/tcp readnews untp # USENET News Transfer Protocol +ntp 123/tcp +ntp 123/udp # Network Time Protocol +netbios-ns 137/tcp # NETBIOS Name Service +netbios-ns 137/udp +netbios-dgm 138/tcp # NETBIOS Datagram Service +netbios-dgm 138/udp +netbios-ssn 139/tcp # NETBIOS session service +netbios-ssn 139/udp +imap2 143/tcp imap # Interim Mail Access Proto v2 +imap2 143/udp imap +snmp 161/udp # Simple Net Mgmt Proto +snmp-trap 162/udp snmptrap # Traps for SNMP +cmip-man 163/tcp # ISO mgmt over IP (CMOT) +cmip-man 163/udp +cmip-agent 164/tcp +cmip-agent 164/udp +xdmcp 177/tcp # X Display Mgr. Control Proto +xdmcp 177/udp +nextstep 178/tcp NeXTStep NextStep # NeXTStep window +nextstep 178/udp NeXTStep NextStep # server +bgp 179/tcp # Border Gateway Proto. +bgp 179/udp +prospero 191/tcp # Cliff Neuman's Prospero +prospero 191/udp +irc 194/tcp # Internet Relay Chat +irc 194/udp +smux 199/tcp # SNMP Unix Multiplexer +smux 199/udp +at-rtmp 201/tcp # AppleTalk routing +at-rtmp 201/udp +at-nbp 202/tcp # AppleTalk name binding +at-nbp 202/udp +at-echo 204/tcp # AppleTalk echo +at-echo 204/udp +at-zis 206/tcp # AppleTalk zone information +at-zis 206/udp +qmtp 209/tcp # The Quick Mail Transfer Protocol +qmtp 209/udp # The Quick Mail Transfer Protocol +z3950 210/tcp wais # NISO Z39.50 database +z3950 210/udp wais +ipx 213/tcp # IPX +ipx 213/udp +imap3 220/tcp # Interactive Mail Access +imap3 220/udp # Protocol v3 +rpc2portmap 369/tcp +rpc2portmap 369/udp # Coda portmapper +codaauth2 370/tcp +codaauth2 370/udp # Coda authentication server +ulistserv 372/tcp # UNIX Listserv +ulistserv 372/udp +ldap 389/tcp # Lightweight Directory Access Protocol +ldap 389/udp # Lightweight Directory Access Protocol +https 443/tcp # MCom +https 443/udp # MCom +snpp 444/tcp # Simple Network Paging Protocol +snpp 444/udp # Simple Network Paging Protocol +saft 487/tcp # Simple Asynchronous File Transfer +saft 487/udp # Simple Asynchronous File Transfer +npmp-local 610/tcp dqs313_qmaster # npmp-local / DQS +npmp-local 610/udp dqs313_qmaster # npmp-local / DQS +npmp-gui 611/tcp dqs313_execd # npmp-gui / DQS +npmp-gui 611/udp dqs313_execd # npmp-gui / DQS +hmmp-ind 612/tcp dqs313_intercell# HMMP Indication / DQS +hmmp-ind 612/udp dqs313_intercell# HMMP Indication / DQS +# +# UNIX specific services +# +exec 512/tcp +biff 512/udp comsat +login 513/tcp +who 513/udp whod +shell 514/tcp cmd # no passwords used +syslog 514/udp +printer 515/tcp spooler # line printer spooler +talk 517/udp +ntalk 518/udp +route 520/udp router routed # RIP +timed 525/udp timeserver +tempo 526/tcp newdate +courier 530/tcp rpc +conference 531/tcp chat +netnews 532/tcp readnews +netwall 533/udp # -for emergency broadcasts +uucp 540/tcp uucpd # uucp daemon +afpovertcp 548/tcp # AFP over TCP +afpovertcp 548/udp # AFP over TCP +remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem +klogin 543/tcp # Kerberized `rlogin' (v5) +kshell 544/tcp krcmd # Kerberized `rsh' (v5) +kerberos-adm 749/tcp # Kerberos `kadmin' (v5) +# +webster 765/tcp # Network dictionary +webster 765/udp +swat 901/tcp # Samba Web Administration Tool +# +# From ``Assigned Numbers'': +# +#> The Registered Ports are not controlled by the IANA and on most systems +#> can be used by ordinary user processes or programs executed by ordinary +#> users. +# +#> Ports are used in the TCP [45,106] to name the ends of logical +#> connections which carry long term conversations. For the purpose of +#> providing services to unknown callers, a service contact port is +#> defined. This list specifies the port used by the server process as its +#> contact port. While the IANA can not control uses of these ports it +#> does register or list uses of these ports as a convienence to the +#> community. +# +ingreslock 1524/tcp +ingreslock 1524/udp +prospero-np 1525/tcp # Prospero non-privileged +prospero-np 1525/udp +datametrics 1645/tcp old-radius # datametrics / old radius entry +datametrics 1645/udp old-radius # datametrics / old radius entry +sa-msg-port 1646/tcp old-radacct # sa-msg-port / old radacct entry +sa-msg-port 1646/udp old-radacct # sa-msg-port / old radacct entry +radius 1812/tcp # Radius +radius 1812/udp # Radius +radacct 1813/tcp # Radius Accounting +radacct 1813/udp # Radius Accounting +cvspserver 2401/tcp # CVS client/server operations +cvspserver 2401/udp # CVS client/server operations +venus 2430/tcp # codacon port +venus 2430/udp # Venus callback/wbc interface +venus-se 2431/tcp # tcp side effects +venus-se 2431/udp # udp sftp side effect +codasrv 2432/tcp # not used +codasrv 2432/udp # server port +codasrv-se 2433/tcp # tcp side effects +codasrv-se 2433/udp # udp sftp side effect +mysql 3306/tcp # MySQL +mysql 3306/udp # MySQL +rfe 5002/tcp # Radio Free Ethernet +rfe 5002/udp # Actually uses UDP only +cfengine 5308/tcp # CFengine +cfengine 5308/udp # CFengine +bbs 7000/tcp # BBS service +# +# +# Kerberos (Project Athena/MIT) services +# Note that these are for Kerberos v4, and are unofficial. Sites running +# v4 should uncomment these and comment out the v5 entries above. +# +kerberos4 750/udp kerberos-iv kdc # Kerberos (server) udp +kerberos4 750/tcp kerberos-iv kdc # Kerberos (server) tcp +kerberos_master 751/udp # Kerberos authentication +kerberos_master 751/tcp # Kerberos authentication +passwd_server 752/udp # Kerberos passwd server +krb_prop 754/tcp # Kerberos slave propagation +krbupdate 760/tcp kreg # Kerberos registration +kpasswd 761/tcp kpwd # Kerberos "passwd" +kpop 1109/tcp # Pop with Kerberos +knetd 2053/tcp # Kerberos de-multiplexor +zephyr-srv 2102/udp # Zephyr server +zephyr-clt 2103/udp # Zephyr serv-hm connection +zephyr-hm 2104/udp # Zephyr hostmanager +eklogin 2105/tcp # Kerberos encrypted rlogin +# +# Unofficial but necessary (for NetBSD) services +# +supfilesrv 871/tcp # SUP server +supfiledbg 1127/tcp # SUP debugging +# +# Datagram Delivery Protocol services +# +rtmp 1/ddp # Routing Table Maintenance Protocol +nbp 2/ddp # Name Binding Protocol +echo 4/ddp # AppleTalk Echo Protocol +zip 6/ddp # Zone Information Protocol +# +# Services added for the Debian GNU/Linux distribution +poppassd 106/tcp # Eudora +poppassd 106/udp # Eudora +mailq 174/tcp # Mailer transport queue for Zmailer +mailq 174/udp # Mailer transport queue for Zmailer +ssmtp 465/tcp # SMTP over SSL +gdomap 538/tcp # GNUstep distributed objects +gdomap 538/udp # GNUstep distributed objects +snews 563/tcp # NNTP over SSL +ssl-ldap 636/tcp # LDAP over SSL +omirr 808/tcp omirrd # online mirror +omirr 808/udp omirrd # online mirror +rsync 873/tcp # rsync +rsync 873/udp # rsync +simap 993/tcp # IMAP over SSL +spop3 995/tcp # POP-3 over SSL +socks 1080/tcp # socks proxy server +socks 1080/udp # socks proxy server +rmtcfg 1236/tcp # Gracilis Packeten remote config server +xtel 1313/tcp # french minitel +support 1529/tcp # GNATS +cfinger 2003/tcp # GNU Finger +ninstall 2150/tcp # ninstall service +ninstall 2150/udp # ninstall service +afbackup 2988/tcp # Afbackup system +afbackup 2988/udp # Afbackup system +icp 3130/tcp # Internet Cache Protocol (Squid) +icp 3130/udp # Internet Cache Protocol (Squid) +postgres 5432/tcp # POSTGRES +postgres 5432/udp # POSTGRES +fax 4557/tcp # FAX transmission service (old) +hylafax 4559/tcp # HylaFAX client-server protocol (new) +noclog 5354/tcp # noclogd with TCP (nocol) +noclog 5354/udp # noclogd with UDP (nocol) +hostmon 5355/tcp # hostmon uses TCP (nocol) +hostmon 5355/udp # hostmon uses TCP (nocol) +ircd 6667/tcp # Internet Relay Chat +ircd 6667/udp # Internet Relay Chat +webcache 8080/tcp # WWW caching service +webcache 8080/udp # WWW caching service +tproxy 8081/tcp # Transparent Proxy +tproxy 8081/udp # Transparent Proxy +mandelspawn 9359/udp mandelbrot # network mandelbrot +amanda 10080/udp # amanda backup services +kamanda 10081/tcp # amanda backup services (Kerberos) +kamanda 10081/udp # amanda backup services (Kerberos) +amandaidx 10082/tcp # amanda backup services +amidxtape 10083/tcp # amanda backup services +isdnlog 20011/tcp # isdn logging system +isdnlog 20011/udp # isdn logging system +vboxd 20012/tcp # voice box system +vboxd 20012/udp # voice box system +binkp 24554/tcp # Binkley +binkp 24554/udp # Binkley +asp 27374/tcp # Address Search Protocol +asp 27374/udp # Address Search Protocol +tfido 60177/tcp # Ifmail +tfido 60177/udp # Ifmail +fido 60179/tcp # Ifmail +fido 60179/udp # Ifmail + +# Local services + +linuxconf 98/tcp diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/shadow --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/shadow Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,3 @@ +root:$1$EbR327ag$7NFmnOi7JQc5/lG0JLiU8/:13525:0:99999:7::: +nobody:*:13509:0:99999:7::: +www:*:13509:0:99999:7::: diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/shells --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/shells Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,5 @@ +# /etc/shells: Valid login shells. +/bin/sh +/bin/ash +/bin/bash +/bin/hush diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/etc/slitaz-release --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/etc/slitaz-release Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,1 @@ +4.0-tiny diff -r a3e929634247 -r 371673f39e46 base-tiny/stuff/tmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base-tiny/stuff/tmp Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,1 @@ +var/tmp \ No newline at end of file diff -r a3e929634247 -r 371673f39e46 bootloader/receipt --- a/bootloader/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/bootloader/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -12,5 +12,5 @@ # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { - cp -a stuff/. $fs + cp -a $stuff/. $fs } diff -r a3e929634247 -r 371673f39e46 busybox/receipt --- a/busybox/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/busybox/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -13,6 +13,7 @@ WEB_SITE="http://www.busybox.net/" WGET_URL="http://www.busybox.net/downloads/$TARBALL" CONFIG_FILES="/etc/dnsd.conf /etc/inetd.conf /etc/udhcpd.conf /etc/resolv.conf" +AUTO_SELECTION="never" apply_bb_patchs() { @@ -20,7 +21,7 @@ while read file; do [ -f done.$file ] && continue echo "Apply $file..." - patch -p1 < ../stuff/$PACKAGE-${VERSION%.*}-$file || return 1 + patch -p1 < $stuff/$PACKAGE-${VERSION%.*}-$file || return 1 touch done.$file done < /dev/null | \ awk '/=>/ { print $3 }' | while read file ; do @@ -120,17 +63,60 @@ done done chown 0.0 rootfs/lib/* - sed -i 's/UDEV=.*/UDEV="no"/;s/hwconf.sh l/l/' rootfs/etc/rcS.conf - rm -rf rootfs/tmp rootfs/var/games rootfs/var/cache \ - rootfs/bin/bootlog rootfs/etc/modprobe.d rootfs/home \ - rootfs/sbin/mktazdevs.sh rootfs/usr/bin/man \ - rootfs/usr/share/applications rootfs/sys rootfs/usr/bin/ldd \ - rootfs/etc/nsswitch.conf rootfs/etc/zcip.script \ - rootfs/etc/udhcpd.conf rootfs/etc/inetd.conf \ - rootfs/usr/lib rootfs/usr/games rootfs/usr/share/doc \ - rootfs/usr/local rootfs/var/lock rootfs/var/spool rootfs/media +} + +# Rules to gen a SliTaz package suitable for Tazpkg. +genpkg_rules() +{ + cp -a $WOK/base-tiny/stuff/. $fs/ + cp -a $src/_install/bin/busybox $fs/bin + for i in /bin/sh /bin/login /bin/getty /bin/false \ + /sbin/getty /sbin/reboot; do + ln $fs/bin/busybox $fs$i + done + mkdir -p $fs/etc/init.d + # Busybox config files. + cp $stuff/busybox.conf $fs/etc + chmod 600 $fs/etc/busybox.conf + #cp $stuff/dnsd.conf $fs/etc + #cp $stuff/udhcpd.conf $fs/etc + touch $fs/etc/resolv.conf + cp $stuff/inetd.conf $fs/etc + cp $stuff/daemon $fs/etc/init.d + for i in crond dnsd ftpd httpd inetd klogd ntpd syslogd telnetd tftpd \ + udhcpd zcip ; do + grep -qi config_$i=y $src/.config && + ln -s daemon $fs/etc/init.d/$i + done + #rm $fs/linuxrc + #mkdir -p $fs/etc/modprobe.d + # Udhcpc stuff. + mkdir -p $fs/usr/share/udhcpc + cp $stuff/udhcp.script $fs/usr/share/udhcpc/default.script + chmod +x $fs/usr/share/udhcpc/default.script + # ZeroConf stuff. + #cp $stuff/zcip.script $fs/etc + # Httpd stuff. + #cp $stuff/httpd_helper.sh $fs/usr/bin + #chmod +x $fs/usr/bin/httpd_helper.sh + # .desktop stuff + mkdir -p $fs/usr/share + #cp -a $stuff/applications $fs/usr/share + # prepare rootfs.cpio for kernel-* packages + mkdir -p $src/rootfs/lib + cp -a $fs/. $src/rootfs/. + cd $src + false && + for i in slitaz-base-files slitaz-boot-scripts ; do + tazpkg get $i + tazpkg extract $i*.tazpkg + cp -a $i*/fs/. rootfs/. + grep -qs ^post_install $i*/receipt || continue + ( . $i*/receipt ; post_install rootfs ) + done - ln -s var/tmp rootfs/tmp + ln rootfs/bin/busybox rootfs/init + #ln -s var/tmp rootfs/tmp ( cd rootfs ; find | cpio -o -H newc ) > rootfs.cpio du -h rootfs.cpio diff -r a3e929634247 -r 371673f39e46 busybox/stuff/applications/pcan.desktop --- a/busybox/stuff/applications/pcan.desktop Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=Local ports scan -Name[zh_CN]=本地端口扫描 -Exec=xterm -hold -e 'pscan localhost' -Icon=other.png -Type=Application -Categories=Network; diff -r a3e929634247 -r 371673f39e46 busybox/stuff/applications/top.desktop --- a/busybox/stuff/applications/top.desktop Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=Top Processes Viewer -Name[zh_CN]=进程管理器 -Type=Application -Comment=Show System Processes -Exec=xterm -e top -Icon=other.png -Categories=ConsoleOnly;System;Application; -GenericName=Process Viewer diff -r a3e929634247 -r 371673f39e46 busybox/stuff/busybox-1.18.config --- a/busybox/stuff/busybox-1.18.config Thu Jul 18 13:24:21 2013 +0000 +++ b/busybox/stuff/busybox-1.18.config Fri Oct 02 21:45:05 2015 +0200 @@ -46,8 +46,8 @@ # CONFIG_FEATURE_SUID_CONFIG is not set # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set # CONFIG_SELINUX is not set -# CONFIG_FEATURE_PREFER_APPLETS is not set -CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_PREFER_APPLETS=y +CONFIG_BUSYBOX_EXEC_PATH="/bin/busybox" CONFIG_FEATURE_SYSLOG=y # CONFIG_FEATURE_HAVE_RPC is not set @@ -77,8 +77,8 @@ # # Installation Options ("make install" behavior) # -CONFIG_INSTALL_APPLET_SYMLINKS=y -# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SYMLINKS is not set +CONFIG_INSTALL_APPLET_HARDLINKS=y # CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set # CONFIG_INSTALL_APPLET_DONT is not set # CONFIG_INSTALL_SH_APPLET_SYMLINK is not set @@ -967,7 +967,7 @@ CONFIG_SH_MATH_SUPPORT=y # CONFIG_SH_MATH_SUPPORT_64 is not set CONFIG_FEATURE_SH_EXTRA_QUIET=y -# CONFIG_FEATURE_SH_STANDALONE is not set +CONFIG_FEATURE_SH_STANDALONE=y # CONFIG_FEATURE_SH_NOFORK is not set # diff -r a3e929634247 -r 371673f39e46 busybox/stuff/udhcp.script --- a/busybox/stuff/udhcp.script Thu Jul 18 13:24:21 2013 +0000 +++ b/busybox/stuff/udhcp.script Fri Oct 02 21:45:05 2015 +0200 @@ -1,7 +1,5 @@ #!/bin/sh -# udhcpc script edited by Tim Riker - [ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1 [ "$subnet" == "255.255.255.255" ] && subnet="255.255.0.0" # qemu weirdness @@ -14,14 +12,12 @@ /sbin/ifconfig $interface 0.0.0.0 for i in /etc/ipdown.d/*; do [ -x $i ] && $i $interface - done - ;; + done ;; renew|bound) /sbin/ifconfig $interface $ip $BROADCAST $NETMASK - if [ -n "$router" ] ; then - echo "deleting routers" + if [ "$router" ] ; then while route del default gw 0.0.0.0 dev $interface ; do : done @@ -32,16 +28,14 @@ done fi - echo -n > $RESOLV_CONF - [ -n "$domain" ] && echo search $domain >> $RESOLV_CONF + rm -f $RESOLV_CONF + [ "$domain" ] && echo search $domain >> $RESOLV_CONF for i in $dns ; do - echo adding dns $i - echo nameserver $i >> $RESOLV_CONF - done + echo nameserver $i + done >> $RESOLV_CONF [ "$1" == "bound" ] && for i in /etc/ipup.d/*; do [ -x $i ] && $i $interface $ip $dns - done - ;; + done ;; esac exit 0 diff -r a3e929634247 -r 371673f39e46 ctorrent-dnh/receipt --- a/ctorrent-dnh/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/ctorrent-dnh/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -15,20 +15,18 @@ # Rules to configure and make the package. compile_rules() { - mv ${PACKAGE}$VERSION $PACKAGE-$VERSION 2>/dev/null - cd $src ./configure \ --prefix=/usr \ --with-ssl=no \ --host=$TARGET-pc-linux-gnu \ CC=uclibc-$TARGET-cc && - make - make DESTDIR=$PWD/_pkg install + make && + make DESTDIR=$DESTDIR install } # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { mkdir -p $fs/usr - cp -a $_pkg/usr/bin $fs/usr + cp -a $install/usr/bin $fs/usr } diff -r a3e929634247 -r 371673f39e46 custom-console/receipt --- a/custom-console/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/custom-console/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -2,7 +2,7 @@ PACKAGE="custom-console" VERSION="1.0" -CATEGORY="configuration" +CATEGORY="meta" SHORT_DESC="Configure a custom console" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="BSD" diff -r a3e929634247 -r 371673f39e46 dropbear-without-zlib/receipt --- a/dropbear-without-zlib/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/dropbear-without-zlib/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -24,20 +24,19 @@ local i local DROPBEARS DROPBEARS="dbclient scp" - cd $src sed -i -e 's|/usr/X11R6/bin/xauth|/usr/bin/xauth|' \ -e 's|/usr/libexec/sftp-server|/usr/sbin/sftp-server|' \ options.h ./configure --prefix=/usr --without-pam --host=$TARGET-pc-linux-gnu \ --disable-zlib CC=uclibc-$TARGET-cc && make PROGRAMS="dropbear $DROPBEARS" MULTI=1 && - install -d -m 755 $PWD/_pkg/usr/sbin && - install -m 755 dropbearmulti $PWD/_pkg/usr/sbin/dropbear && - chown root $PWD/_pkg/usr/sbin/dropbear && - chgrp 0 $PWD/_pkg/usr/sbin/dropbear && - install -d -m 755 $PWD/_pkg/usr/bin && + install -d -m 755 $DESTDIR/usr/sbin && + install -m 755 dropbearmulti $DESTDIR/usr/sbin/dropbear && + chown root $DESTDIR/usr/sbin/dropbear && + chgrp 0 $DESTDIR/usr/sbin/dropbear && + install -d -m 755 $DESTDIR/usr/bin && for i in $DROPBEARS ssh; do - ln -s ../sbin/dropbear $PWD/_pkg/usr/bin/$i + ln -s ../sbin/dropbear $DESTDIR/usr/bin/$i done } @@ -45,8 +44,8 @@ genpkg_rules() { mkdir -p $fs/usr $fs/etc/init.d $fs/etc/dropbear - cp -a $_pkg/usr/bin $fs/usr - cp -a $_pkg/usr/sbin $fs/usr + cp -a $install/usr/bin $fs/usr + cp -a $install/usr/sbin $fs/usr ln -s daemon $fs/etc/init.d/dropbear cat > $fs/etc/dropbear/banner < /dev/null + ln -s /usr/include/z*.h /usr/share/uclibc-cross-compiler-$TARGET/include/ 2> /dev/null ./configure --prefix=/usr --without-pam --host=$TARGET-pc-linux-gnu \ CC=uclibc-$TARGET-cc && make PROGRAMS="dropbear $DROPBEARS" MULTI=1 && - install -d -m 755 $PWD/_pkg/usr/sbin && - install -m 755 dropbearmulti $PWD/_pkg/usr/sbin/dropbear && - chown root $PWD/_pkg/usr/sbin/dropbear && - chgrp 0 $PWD/_pkg/usr/sbin/dropbear && - install -d -m 755 $PWD/_pkg/usr/bin && + install -d -m 755 $DESTDIR/usr/sbin && + install -m 755 dropbearmulti $DESTDIR/usr/sbin/dropbear && + chown root $DESTDIR/usr/sbin/dropbear && + chgrp 0 $DESTDIR/usr/sbin/dropbear && + install -d -m 755 $DESTDIR/usr/bin && for i in $DROPBEARS ssh; do - ln -s ../sbin/dropbear $PWD/_pkg/usr/bin/$i + ln -s ../sbin/dropbear $DESTDIR/usr/bin/$i done } @@ -44,8 +46,8 @@ genpkg_rules() { mkdir -p $fs/usr $fs/etc/init.d $fs/etc/dropbear - cp -a $_pkg/usr/bin $fs/usr - cp -a $_pkg/usr/sbin $fs/usr + cp -a $install/usr/bin $fs/usr + cp -a $install/usr/sbin $fs/usr ln -s daemon $fs/etc/init.d/dropbear cat > $fs/etc/dropbear/banner < (b) ? (a) : (b)) --#define NLEVELS (1 << 8) -+#define NLEVELS (1 << 16) - - static int fd; - static void *fb; - static struct fb_var_screeninfo vinfo; - static struct fb_fix_screeninfo finfo; --static int bpp; --static int nr, ng, nb; -+static int bytes_per_pixel; - - static int fb_len(void) - { -@@ -28,10 +27,12 @@ - { - static unsigned short red[NLEVELS], green[NLEVELS], blue[NLEVELS]; - struct fb_cmap cmap; -+ - if (finfo.visual == FB_VISUAL_TRUECOLOR) - return; -+ - cmap.start = 0; -- cmap.len = MAX(nr, MAX(ng, nb)); -+ cmap.len = NLEVELS; - cmap.red = red; - cmap.green = green; - cmap.blue = blue; -@@ -41,24 +42,39 @@ - - void fb_cmap(void) - { -- unsigned short red[NLEVELS], green[NLEVELS], blue[NLEVELS]; -+ struct fb_bitfield *color[3] = { -+ &vinfo.blue, &vinfo.green, &vinfo.red -+ }; -+ int eye_sensibility[3] = { 2, 0, 1 }; // higher=red, blue, lower=green - struct fb_cmap cmap; -- int i; -+ unsigned short map[3][NLEVELS]; -+ int i, j, n, offset; -+ - if (finfo.visual == FB_VISUAL_TRUECOLOR) - return; - -- for (i = 0; i < nr; i++) -- red[i] = (65535 / (nr - 1)) * i; -- for (i = 0; i < ng; i++) -- green[i] = (65535 / (ng - 1)) * i; -- for (i = 0; i < nb; i++) -- blue[i] = (65535 / (nb - 1)) * i; -- -+ for (i = 0, n = vinfo.bits_per_pixel; i < 3; i++) { -+ n -= color[eye_sensibility[i]]->length = n / (3 - i); -+ } -+ n = (1 << vinfo.bits_per_pixel); -+ if (n > NLEVELS) -+ n = NLEVELS; -+ for (i = offset = 0; i < 3; i++) { -+ int length = color[i]->length; -+ color[i]->offset = offset; -+ for (j = 0; j < n; j++) { -+ int k = (j >> offset) << (16 - length); -+ if (k == (0xFFFF << (16 - length))) -+ k = 0xFFFF; -+ map[i][j] = k; -+ } -+ offset += length; -+ } - cmap.start = 0; -- cmap.len = MAX(nr, MAX(ng, nb)); -- cmap.red = red; -- cmap.green = green; -- cmap.blue = blue; -+ cmap.len = n; -+ cmap.red = map[2]; -+ cmap.green = map[1]; -+ cmap.blue = map[0]; - cmap.transp = NULL; - - ioctl(fd, FBIOPUTCMAP, &cmap); -@@ -66,25 +82,26 @@ - - unsigned fb_mode(void) - { -- return (bpp << 16) | (vinfo.red.length << 8) | -+ return (bytes_per_pixel << 16) | (vinfo.red.length << 8) | - (vinfo.green.length << 4) | (vinfo.blue.length); - } - - int fb_init(void) - { -+ int err = 1; - fd = open(FBDEV_PATH, O_RDWR); - if (fd == -1) - goto failed; -+ err++; - if (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo) == -1) - goto failed; -+ err++; - if (ioctl(fd, FBIOGET_FSCREENINFO, &finfo) == -1) - goto failed; - fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC); -- bpp = (vinfo.bits_per_pixel + 7) >> 3; -- nr = 1 << vinfo.red.length; -- ng = 1 << vinfo.blue.length; -- nb = 1 << vinfo.green.length; -+ bytes_per_pixel = (vinfo.bits_per_pixel + 7) >> 3; - fb = mmap(NULL, fb_len(), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); -+ err++; - if (fb == MAP_FAILED) - goto failed; - fb_cmap_save(1); -@@ -93,7 +110,7 @@ - failed: - perror("fb_init()"); - close(fd); -- return 1; -+ return err; - } - - void fb_free(void) -@@ -120,19 +137,30 @@ - - void fb_set(int r, int c, void *mem, int len) - { -- memcpy(fb_mem(r) + (c + vinfo.xoffset) * bpp, mem, len * bpp); -+ memcpy(fb_mem(r) + (c + vinfo.xoffset) * bytes_per_pixel, -+ mem, len * bytes_per_pixel); - } - -+void fill_rgb_conv(int mode, struct rgb_conv *s) -+{ -+ int bits; -+ -+ bits = mode & 0xF; mode >>= 4; -+ s->rshl = s->gshl = bits; -+ s->bskp = 8 - bits; s->bmax = (1 << bits) -1; -+ bits = mode & 0xF; mode >>= 4; -+ s->rshl += bits; -+ s->gskp = 8 - bits; s->gmax = (1 << bits) -1; -+ bits = mode & 0xF; -+ s->rskp = 8 - bits; s->rmax = (1 << bits) -1; -+} -+ - unsigned fb_val(int r, int g, int b) - { -- switch (fb_mode() & 0x0fff) { -- default: -- fprintf(stderr, "fb_val: unknown fb_mode()\n"); -- case 0x0888: -- return (r << 16) | (g << 8) | b; -- case 0x0565: -- return ((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3); -- case 0x0233: -- return ((r >> 6) << 6) | ((g >> 5) << 3) | (b >> 5); -- } -+ static struct rgb_conv c; -+ -+ if (c.rshl == 0) -+ fill_rgb_conv(fb_mode(), &c); -+ return ((r >> c.rskp) << c.rshl) | ((g >> c.gskp) << c.gshl) -+ | (b >> c.bskp); - } ---- fbvnc.c -+++ fbvnc.c -@@ -36,13 +36,15 @@ - - #define VNC_PORT "5900" - --#define MAXRES (1 << 21) --#define MIN(a, b) ((a) < (b) ? (a) : (b)) -+#define MAXRES (1 << 12) - - static int cols, rows; -+static int srv_cols, srv_rows; -+static int or, oc; - static int mr, mc; /* mouse position */ - - static char buf[MAXRES]; -+#define MAXPIX (MAXRES/sizeof(fbval_t)) - - static int vnc_connect(char *addr, char *port) - { -@@ -61,22 +63,26 @@ - - if (connect(fd, addrinfo->ai_addr, addrinfo->ai_addrlen) == -1) { - close(fd); -- freeaddrinfo(addrinfo); -- return -1; -+ fd = -2; - } - freeaddrinfo(addrinfo); - return fd; - } - -+static int bpp, vnc_mode; -+static struct rgb_conv format; - static int vnc_init(int fd) - { -- char vncver[] = "RFB 003.003\n"; -+ static int vncfmt[] = { 0x40888, 0x20565, 0x10233, 0 }; -+ char vncver[12]; -+ int i; -+ - struct vnc_client_init clientinit; - struct vnc_server_init serverinit; - struct vnc_client_pixelfmt pixfmt_cmd; - int connstat = VNC_CONN_FAILED; - -- write(fd, vncver, 12); -+ write(fd, "RFB 003.003\n", 12); - read(fd, vncver, 12); - - read(fd, &connstat, sizeof(connstat)); -@@ -88,68 +94,78 @@ - write(fd, &clientinit, sizeof(clientinit)); - read(fd, &serverinit, sizeof(serverinit)); - -- if (fb_init()) -- return -1; -- if (FBM_BPP(fb_mode()) != sizeof(fbval_t)) { -- fprintf(stderr, "fbvnc: fbval_t doesn't match fb depth\n"); -- exit(1); -- } -- cols = MIN(ntohs(serverinit.w), fb_cols()); -- rows = MIN(ntohs(serverinit.h), fb_rows()); -+ i = fb_init(); -+ if (i) -+ return -1 - i; -+ srv_cols = ntohs(serverinit.w); -+ srv_rows = ntohs(serverinit.h); -+ cols = MIN(srv_cols, fb_cols()); -+ rows = MIN(srv_rows, fb_rows()); - mr = rows / 2; - mc = cols / 2; -+ or = oc = 0; - - read(fd, buf, ntohl(serverinit.len)); - pixfmt_cmd.type = VNC_CLIENT_PIXFMT; -- pixfmt_cmd.format.bpp = 8; -- pixfmt_cmd.format.depth = 8; - pixfmt_cmd.format.bigendian = 0; - pixfmt_cmd.format.truecolor = 1; - -- pixfmt_cmd.format.rmax = htons(3); -- pixfmt_cmd.format.gmax = htons(7); -- pixfmt_cmd.format.bmax = htons(7); -- pixfmt_cmd.format.rshl = 0; -- pixfmt_cmd.format.gshl = 2; -- pixfmt_cmd.format.bshl = 5; -+ if (bpp < 1) -+ bpp = FBM_BPP(fb_mode()); -+ if (bpp >= 3) -+ bpp = 4; -+ for (i = 0; bpp <= FBM_BPP(vncfmt[i]); i++) -+ vnc_mode = vncfmt[i]; -+ bpp = FBM_BPP(vnc_mode); -+ pixfmt_cmd.format.bpp = -+ pixfmt_cmd.format.depth = bpp << 3; - -+ fill_rgb_conv(FBM_COLORS(vnc_mode), &format); -+ pixfmt_cmd.format.rmax = htons(format.rmax); -+ pixfmt_cmd.format.gmax = htons(format.gmax); -+ pixfmt_cmd.format.bmax = htons(format.bmax); -+ pixfmt_cmd.format.rshl = format.rshl; -+ pixfmt_cmd.format.gshl = format.gshl; -+ pixfmt_cmd.format.bshl = 0; - write(fd, &pixfmt_cmd, sizeof(pixfmt_cmd)); - return fd; - } - --static int vnc_free(void) -+static void vnc_free(void) - { - fb_free(); -- return 0; - } - --static int vnc_refresh(int fd, int inc) -+static void vnc_refresh(int fd, int inc) - { - struct vnc_client_fbup fbup_req; - fbup_req.type = VNC_CLIENT_FBUP; - fbup_req.inc = inc; -- fbup_req.x = htons(0); -- fbup_req.y = htons(0); -- fbup_req.w = htons(cols); -- fbup_req.h = htons(rows); -+ fbup_req.x = htons(oc); -+ fbup_req.y = htons(or); -+ fbup_req.w = htons(oc + cols); -+ fbup_req.h = htons(or + rows); - write(fd, &fbup_req, sizeof(fbup_req)); -- return 0; - } - --static void drawfb(char *s, int x, int y, int w, int h) -+static void drawfb(char *s, int x, int y, int w) - { -- fbval_t slice[1 << 14]; -- int i, j; -- for (i = 0; i < h; i++) { -- for (j = 0; j < w; j++) { -- int c = *(unsigned char *) &s[i * w + j]; -- int r = (c & 0x3) << 6; -- int g = ((c >> 2) & 0x7) << 5; -- int b = ((c >> 5) & 0x7) << 5; -- slice[j] = FB_VAL(r, g, b); -+ int mode = fb_mode(); -+ if (mode != vnc_mode) { -+ fbval_t slice[MAXRES]; -+ unsigned char *byte = (unsigned char *) slice; -+ int j; -+ int fb_bpp = FBM_BPP(mode); -+ for (j = 0; j < w; j++, byte += fb_bpp, s += bpp) { -+ fbval_t c = * (fbval_t *) s; -+ int r = ((c >> format.rshl) & format.rmax) << format.rskp; -+ int g = ((c >> format.gshl) & format.gmax) << format.gskp; -+ int b = (c & format.bmax) << format.bskp; -+ * (fbval_t *) byte = FB_VAL(r, g, b); - } -- fb_set(y + i, x, slice, w); -+ s = (void *) slice; - } -+ fb_set(y, x, s, w); - } - - static void xread(int fd, void *buf, int len) -@@ -159,54 +175,84 @@ - while (nr < len && (n = read(fd, buf + nr, len - nr)) > 0) - nr += n; - if (nr < len) { -- printf("partial vnc read!\n"); -- exit(1); -+ fprintf(stderr,"partial vnc read!\n"); -+ exit(99); - } - } - -+static void skip(int fd, int len) -+{ -+ int n; -+ while (len > 0 && (n = read(fd, buf, MIN(len, sizeof(buf)))) > 0) -+ len -= n; -+} -+ - static int vnc_event(int fd) - { - struct vnc_rect uprect; -- char msg[1 << 12]; -- struct vnc_server_fbup *fbup = (void *) msg; -- struct vnc_server_cuttext *cuttext = (void *) msg; -- struct vnc_server_colormap *colormap = (void *) msg; -- int j; -- int n; -+ union { -+ struct vnc_server_fbup fbup; -+ struct vnc_server_cuttext cuttext; -+ struct vnc_server_colormap colormap; -+ } msg; -+ int j, n; - -- if (read(fd, msg, 1) != 1) -+ if (read(fd, &msg.fbup.type, 1) != 1) - return -1; -- switch (msg[0]) { -+ switch (msg.fbup.type) { - case VNC_SERVER_FBUP: -- xread(fd, msg + 1, sizeof(*fbup) - 1); -- n = ntohs(fbup->n); -+ xread(fd, &msg.fbup.pad, sizeof(msg.fbup) - 1); -+ n = ntohs(msg.fbup.n); - for (j = 0; j < n; j++) { -- int x, y, w, h; -+ int x, y, w, h, l, i; - xread(fd, &uprect, sizeof(uprect)); -+ if (uprect.enc != 0) { -+ fprintf(stderr,"Encoding not RAW: %d\n", -+ ntohl(uprect.enc)); -+ return -1; -+ } - x = ntohs(uprect.x); - y = ntohs(uprect.y); - w = ntohs(uprect.w); - h = ntohs(uprect.h); -- if (x >= cols || x + w > cols) -- return -1; -- if (y >= rows || y + h > rows) -- return -1; -- xread(fd, buf, w * h); -- drawfb(buf, x, y, w, h); -+ x -= oc; -+ y -= or; -+ i = 0; -+ l = MIN(w, cols - x); -+ if (x < 0) { -+ l = MIN(w + x, cols); -+ i = MIN(w, -x); -+ x = 0; -+ } -+ if (l < 0) -+ l = 0; -+ for (; h--; y++) { -+ int n = l; -+ int xj = x; -+ skip(fd, i * bpp); -+ while (n > 0) { -+ int j = MIN(n, MAXPIX); -+ xread(fd, buf, j * bpp); -+ if (y >= 0 && y < rows) -+ drawfb(buf, xj, y, j); -+ xj += j; n -= j; -+ } -+ skip(fd, (w - l - i) * bpp); -+ } - } - break; - case VNC_SERVER_BELL: - break; - case VNC_SERVER_CUTTEXT: -- xread(fd, msg + 1, sizeof(*cuttext) - 1); -- xread(fd, buf, ntohl(cuttext->len)); -+ xread(fd, &msg.cuttext.pad1, sizeof(msg.cuttext) - 1); -+ skip(fd, ntohl(msg.cuttext.len)); - break; - case VNC_SERVER_COLORMAP: -- xread(fd, msg + 1, sizeof(*colormap) - 1); -- xread(fd, buf, ntohs(colormap->n) * 3 * 2); -+ xread(fd, &msg.colormap.pad, sizeof(msg.colormap) - 1); -+ skip(fd, ntohs(msg.colormap.n) * 3 * 2); - break; - default: -- fprintf(stderr, "unknown vnc msg: %d\n", msg[0]); -+ fprintf(stderr, "unknown vnc msg: %d\n", msg.fbup.type); - return -1; - } - return 0; -@@ -217,12 +263,31 @@ - char ie[3]; - struct vnc_client_ratevent me = {VNC_CLIENT_RATEVENT}; - int mask = 0; -+ int refresh = 2; - if (read(ratfd, &ie, sizeof(ie)) != 3) - return -1; - mc += ie[1]; - mr -= ie[2]; -- mc = MAX(0, MIN(cols - 1, mc)); -- mr = MAX(0, MIN(rows - 1, mr)); -+ if (mc < oc) { -+ if ((oc -= cols / 5) < 0) -+ oc = 0; -+ } -+ else if (mc >= oc + cols && oc + cols < srv_cols) { -+ if ((oc += cols / 5) > srv_cols - cols) -+ oc = srv_cols - cols; -+ } -+ else refresh--; -+ if (mr < or) { -+ if ((or -= rows / 5) < 0) -+ or = 0; -+ } -+ else if (mr >= or + rows && or + rows < srv_rows) { -+ if ((or += rows / 5) > srv_rows - rows) -+ or = srv_rows - rows; -+ } -+ else refresh--; -+ mc = MAX(oc, MIN(oc + cols - 1, mc)); -+ mr = MAX(or, MIN(or + rows - 1, mr)); - if (ie[0] & 0x01) - mask |= VNC_BUTTON1_MASK; - if (ie[0] & 0x04) -@@ -233,6 +298,8 @@ - me.x = htons(mc); - me.mask = mask; - write(fd, &me, sizeof(me)); -+ if (refresh) -+ vnc_refresh(fd, 0); - return 0; - } - -@@ -292,12 +359,11 @@ - k = 0xff0d; - break; - case 0x0c: /* ^L: redraw */ -- if (vnc_refresh(fd, 0)) -- return -1; -+ vnc_refresh(fd, 0); - default: - k = (unsigned char) key[i]; - } -- if (k >= 'A' && k <= 'Z' || strchr(":\"<>?{}|+_()*&^%$#@!~", k)) -+ if ((k >= 'A' && k <= 'Z') || strchr(":\"<>?{}|+_()*&^%$#@!~", k)) - mod[nmod++] = 0xffe1; - if (k >= 1 && k <= 26) { - k = 'a' + k - 1; -@@ -339,40 +405,42 @@ - write(STDIN_FILENO, show, strlen(show)); - } - --static void mainloop(int vnc_fd, int kbd_fd, int rat_fd) -+static int mainloop(int vnc_fd, int kbd_fd, int rat_fd) - { - struct pollfd ufds[3]; - int pending = 0; - int err; - ufds[0].fd = kbd_fd; -- ufds[0].events = POLLIN; - ufds[1].fd = vnc_fd; -- ufds[1].events = POLLIN; - ufds[2].fd = rat_fd; -+ ufds[0].events = -+ ufds[1].events = - ufds[2].events = POLLIN; -- if (vnc_refresh(vnc_fd, 0)) -- return; -+ vnc_refresh(vnc_fd, 0); - while (1) { - err = poll(ufds, 3, 500); - if (err == -1 && errno != EINTR) - break; - if (!err) - continue; -+ err = -2; - if (ufds[0].revents & POLLIN) - if (kbd_event(vnc_fd, kbd_fd) == -1) - break; -+ err--; - if (ufds[1].revents & POLLIN) { - if (vnc_event(vnc_fd) == -1) - break; - pending = 0; - } -+ err--; - if (ufds[2].revents & POLLIN) - if (rat_event(vnc_fd, rat_fd) == -1) - break; - if (!pending++) -- if (vnc_refresh(vnc_fd, 1)) -- break; -+ vnc_refresh(vnc_fd, 1); - } -+ return err; - } - - int main(int argc, char * argv[]) -@@ -380,27 +448,38 @@ - char *port = VNC_PORT; - char *host = "127.0.0.1"; - struct termios ti; -- int vnc_fd, rat_fd; -+ int vnc_fd, rat_fd, status; -+ -+ if (argc < 2) { -+ fprintf(stderr, "Usage : fbvnc [-bpp bits] server [port]\n"); -+ return 0; -+ } -+ if (*argv[1] == '-' && argc >= 3) { -+ argc -= 2; argv += 2; -+ bpp = atoi(argv[0]) >> 3; -+ } - if (argc >= 2) - host = argv[1]; - if (argc >= 3) - port = argv[2]; -- if ((vnc_fd = vnc_connect(host, port)) == -1) { -- fprintf(stderr, "could not connect!\n"); -+ if ((vnc_fd = vnc_connect(host, port)) < 0) { -+ fprintf(stderr, "could not connect! %s %s : %d\n", -+ host,port,vnc_fd); - return 1; - } -- if (vnc_init(vnc_fd) == -1) { -- fprintf(stderr, "vnc init failed!\n"); -- return 1; -+ status = vnc_init(vnc_fd); -+ if (status < 0) { -+ fprintf(stderr, "vnc init failed! %d\n", status); -+ return 2; - } - term_setup(&ti); - rat_fd = open("/dev/input/mice", O_RDONLY); - -- mainloop(vnc_fd, 0, rat_fd); -+ status = mainloop(vnc_fd, 0, rat_fd); - - term_cleanup(&ti); - vnc_free(); - close(vnc_fd); - close(rat_fd); -- return 0; -+ return 2 - status; - } diff -r a3e929634247 -r 371673f39e46 fr/receipt --- a/fr/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/fr/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -2,7 +2,7 @@ PACKAGE="fr" VERSION="1.0" -CATEGORY="configuration" +CATEGORY="meta" SHORT_DESC="FR keyboard and locales" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="GPL2" @@ -12,10 +12,9 @@ # Rules to configure and make the package. compile_rules() { - mkdir -p fs/etc - echo "Europe/Paris" > fs/etc/TZ - echo "fr-latin1" > fs/etc/keymap.conf - cat > fs/etc/locale.conf < $DESTDIR/etc/TZ + cat > $DESTDIR/etc/locale.conf < $1/etc/init.d/pnp.sh <> $1/etc/init.d/pnp.sh < /etc/isapnp.conf +if isapnp /etc/isapnp.conf > /dev/null 2>&1 ; then + modprobe cs89x0 io=0x\$io irq=\$irq > /dev/null 2>&1 + break 2 +fi +done ; done +status +EOT + grep pnp.sh $1/etc/rcS.conf || + sed -i 's/EARLY_RUN_SCRIPTS="/&pnp.sh /' $1/etc/rcS.conf + list="" + for i in $IRQ_CS89X0_LIST ; do + case " 15 12 11 10 9 7 6 5 4 3 " in + *\ $i\ *) list="$list $i " + esac + done + sed -i "s/IRQ_CS89X0_LIST/${list:-15 12 11 10}/" $1/etc/init.d/pnp.sh + sed -i 's/cs89x0[^ "]* //' $1/etc/rcS.conf +} + +config_form() +{ + cat < + +Allowed IRQ for the Ethernet driver cs89x0 + + + +EOT +} diff -r a3e929634247 -r 371673f39e46 isapnptools/receipt --- a/isapnptools/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/isapnptools/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -10,13 +10,11 @@ BUILD_DEPENDS="uclibc-cross-compiler-$TARGET" TARBALL="$PACKAGE-$VERSION.tgz" WEB_SITE="http://www.roestock.demon.co.uk/isapnptools/" -WGET_URL="ftp://metalab.unc.edu/pub/Linux/system/hardware/$TARBALL" +WGET_URL="http://mirror.slitaz.org/sources/packages/i/$TARBALL" # Rules to configure and make the package. compile_rules() { - cd $src - # Fix cross tools prefix... export PATH=$PWD:$PATH PREFIX=$TARGET-uclibc-gnu @@ -30,12 +28,12 @@ --prefix=/usr --bindir=/bin \ --libexecdir=/usr/bin --mandir=/usr/share/man make && - make DESTDIR=$PWD/_pkg install + make DESTDIR=$DESTDIR install } # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { # move /usr/sbin/* /sbin to use pnptools *before* mounting /usr - cp -a $_pkg/usr/sbin $fs + cp -a $install/usr/sbin $fs } diff -r a3e929634247 -r 371673f39e46 jslinux-config/receipt --- a/jslinux-config/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/jslinux-config/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -2,22 +2,16 @@ PACKAGE="jslinux-config" VERSION="1.0" -CATEGORY="configuration" +CATEGORY="meta" SHORT_DESC="Tiny SliTaz configuration files for jslinux" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="BSD" WEB_SITE="http://tiny.slitaz.org/" DEPENDS="custom-console" -# Rules to configure and make the package. -compile_rules() -{ - mkdir -p fs/dev - mkmod -m 660 fs/dev/clipboard c 10 231 -} - # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { - cp -a fs/. $fs + mkdir -p $fs/dev + mknod -m 660 $fs/dev/clipboard c 10 231 } diff -r a3e929634247 -r 371673f39e46 jssame/receipt --- a/jssame/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/jssame/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -11,8 +11,7 @@ # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { - mkdir $fs/var/www/same + mkdir -p $fs/var/www/same cp -a $stuff/index.html $fs/var/www/same chown -R 80.80 $fs/var/www/same } - diff -r a3e929634247 -r 371673f39e46 kernel-fb/receipt --- a/kernel-fb/receipt Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -# SliTaz package receipt. - -PACKAGE="kernel-fb" -VERSION="2.6.37" -CATEGORY="base-system" -SHORT_DESC="Kernel i386 with mouses, video frame buffers and some ethernet cards, but no disk." -MAINTAINER="devel@slitaz.org" -LICENSE="GPL2" -WEB_SITE="http://www.kernel.org/" -WANTED="kernel-modular" - -# Rules to gen a SliTaz package suitable for Tazpkg. -genpkg_rules() -{ - mkdir $fs/boot - cp -a $WOK/kernel-modular/linux-$VERSION/$PACKAGE $fs/boot/bzImage - cp -a $WOK/kernel-modular/linux-$VERSION/System.map-${PACKAGE#kernel-} $fs/boot/System.map - cp -a $WOK/kernel-modular/linux-$VERSION/config-${PACKAGE#kernel-} $fs/boot/config - cp -a $WOK/kernel-modular/linux-$VERSION/config-busybox $fs/boot -} diff -r a3e929634247 -r 371673f39e46 kernel-isa/receipt --- a/kernel-isa/receipt Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -# SliTaz package receipt. - -PACKAGE="kernel-isa" -VERSION="2.6.37" -CATEGORY="base-system" -SHORT_DESC="Kernel i386 with ppp, ne2k-isa, 3c509, ide and ext3" -MAINTAINER="devel@slitaz.org" -LICENSE="GPL2" -WEB_SITE="http://www.kernel.org/" -WANTED="kernel-modular" - -# Rules to gen a SliTaz package suitable for Tazpkg. -genpkg_rules() -{ - mkdir $fs/boot - cp -a $WOK/kernel-modular/linux-$VERSION/$PACKAGE $fs/boot/bzImage - cp -a $WOK/kernel-modular/linux-$VERSION/System.map-${PACKAGE#kernel-} $fs/boot/System.map - cp -a $WOK/kernel-modular/linux-$VERSION/config-${PACKAGE#kernel-} $fs/boot/config - cp -a $WOK/kernel-modular/linux-$VERSION/config-busybox $fs/boot -} - diff -r a3e929634247 -r 371673f39e46 kernel-lguest/receipt --- a/kernel-lguest/receipt Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -# SliTaz package receipt. - -PACKAGE="kernel-lguest" -VERSION="2.6.37" -CATEGORY="base-system" -SHORT_DESC="Kernel i686 with ext3 and virtual drivers for ethernet and disk" -MAINTAINER="devel@slitaz.org" -LICENSE="GPL2" -WEB_SITE="http://www.kernel.org/" -WANTED="kernel-modular" - -# Rules to gen a SliTaz package suitable for Tazpkg. -genpkg_rules() -{ - mkdir $fs/boot - cp -a $WOK/kernel-modular/linux-$VERSION/$PACKAGE $fs/boot/bzImage - cp -a $WOK/kernel-modular/linux-$VERSION/System.map-${PACKAGE#kernel-} $fs/boot/System.map - cp -a $WOK/kernel-modular/linux-$VERSION/config-${PACKAGE#kernel-} $fs/boot/config - cp -a $WOK/kernel-modular/linux-$VERSION/config-busybox $fs/boot -} diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/001-squashfs-decompressors-add-xz-decompressor-module.patch --- a/kernel-modular/stuff/001-squashfs-decompressors-add-xz-decompressor-module.patch Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3934 +0,0 @@ -From: Lasse Collin -Date: Thu, 2 Dec 2010 19:14:19 +0000 (+0200) -Subject: Decompressors: Add XZ decompressor module -X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fpkl%2Fsquashfs-xz.git;a=commitdiff_plain;h=3dbc3fe7878e53b43064a12d4ab31ca4c18ce85f - -Decompressors: Add XZ decompressor module - -In userspace, the .lzma format has become mostly a legacy -file format that got superseded by the .xz format. Similarly, -LZMA Utils was superseded by XZ Utils. - -These patches add support for XZ decompression into -the kernel. Most of the code is as is from XZ Embedded -. It was written for -the Linux kernel but is usable in other projects too. - -Advantages of XZ over the current LZMA code in the kernel: - - Nice API that can be used by other kernel modules; it's - not limited to kernel, initramfs, and initrd decompression. - - Integrity check support (CRC32) - - BCJ filters improve compression of executable code on - certain architectures. These together with LZMA2 can - produce a few percent smaller kernel or Squashfs images - than plain LZMA without making the decompression slower. - -This patch: Add the main decompression code (xz_dec), testing -module (xz_dec_test), wrapper script (xz_wrap.sh) for the xz -command line tool, and documentation. The xz_dec module is -enough to have a usable XZ decompressor e.g. for Squashfs. - -Signed-off-by: Lasse Collin ---- - -diff --git a/Documentation/xz.txt b/Documentation/xz.txt -new file mode 100644 -index 0000000..68329ac ---- /dev/null -+++ b/Documentation/xz.txt -@@ -0,0 +1,122 @@ -+ -+XZ data compression in Linux -+============================ -+ -+Introduction -+ -+ XZ is a general purpose data compression format with high compression -+ ratio and relatively fast decompression. The primary compression -+ algorithm (filter) is LZMA2. Additional filters can be used to improve -+ compression ratio even further. E.g. Branch/Call/Jump (BCJ) filters -+ improve compression ratio of executable data. -+ -+ The XZ decompressor in Linux is called XZ Embedded. It supports -+ the LZMA2 filter and optionally also BCJ filters. CRC32 is supported -+ for integrity checking. The home page of XZ Embedded is at -+ , where you can find the -+ latest version and also information about using the code outside -+ the Linux kernel. -+ -+ For userspace, XZ Utils provide a zlib-like compression library -+ and a gzip-like command line tool. XZ Utils can be downloaded from -+ . -+ -+XZ related components in the kernel -+ -+ The xz_dec module provides XZ decompressor with single-call (buffer -+ to buffer) and multi-call (stateful) APIs. The usage of the xz_dec -+ module is documented in include/linux/xz.h. -+ -+ The xz_dec_test module is for testing xz_dec. xz_dec_test is not -+ useful unless you are hacking the XZ decompressor. xz_dec_test -+ allocates a char device major dynamically to which one can write -+ .xz files from userspace. The decompressed output is thrown away. -+ Keep an eye on dmesg to see diagnostics printed by xz_dec_test. -+ See the xz_dec_test source code for the details. -+ -+ For decompressing the kernel image, initramfs, and initrd, there -+ is a wrapper function in lib/decompress_unxz.c. Its API is the -+ same as in other decompress_*.c files, which is defined in -+ include/linux/decompress/generic.h. -+ -+ scripts/xz_wrap.sh is a wrapper for the xz command line tool found -+ from XZ Utils. The wrapper sets compression options to values suitable -+ for compressing the kernel image. -+ -+ For kernel makefiles, two commands are provided for use with -+ $(call if_needed). The kernel image should be compressed with -+ $(call if_needed,xzkern) which will use a BCJ filter and a big LZMA2 -+ dictionary. It will also append a four-byte trailer containing the -+ uncompressed size of the file, which is needed by the boot code. -+ Other things should be compressed with $(call if_needed,xzmisc) -+ which will use no BCJ filter and 1 MiB LZMA2 dictionary. -+ -+Notes on compression options -+ -+ Since the XZ Embedded supports only streams with no integrity check or -+ CRC32, make sure that you don't use some other integrity check type -+ when encoding files that are supposed to be decoded by the kernel. With -+ liblzma, you need to use either LZMA_CHECK_NONE or LZMA_CHECK_CRC32 -+ when encoding. With the xz command line tool, use --check=none or -+ --check=crc32. -+ -+ Using CRC32 is strongly recommended unless there is some other layer -+ which will verify the integrity of the uncompressed data anyway. -+ Double checking the integrity would probably be waste of CPU cycles. -+ Note that the headers will always have a CRC32 which will be validated -+ by the decoder; you can only change the integrity check type (or -+ disable it) for the actual uncompressed data. -+ -+ In userspace, LZMA2 is typically used with dictionary sizes of several -+ megabytes. The decoder needs to have the dictionary in RAM, thus big -+ dictionaries cannot be used for files that are intended to be decoded -+ by the kernel. 1 MiB is probably the maximum reasonable dictionary -+ size for in-kernel use (maybe more is OK for initramfs). The presets -+ in XZ Utils may not be optimal when creating files for the kernel, -+ so don't hesitate to use custom settings. Example: -+ -+ xz --check=crc32 --lzma2=dict=512KiB inputfile -+ -+ An exception to above dictionary size limitation is when the decoder -+ is used in single-call mode. Decompressing the kernel itself is an -+ example of this situation. In single-call mode, the memory usage -+ doesn't depend on the dictionary size, and it is perfectly fine to -+ use a big dictionary: for maximum compression, the dictionary should -+ be at least as big as the uncompressed data itself. -+ -+Future plans -+ -+ Creating a limited XZ encoder may be considered if people think it is -+ useful. LZMA2 is slower to compress than e.g. Deflate or LZO even at -+ the fastest settings, so it isn't clear if LZMA2 encoder is wanted -+ into the kernel. -+ -+ Support for limited random-access reading is planned for the -+ decompression code. I don't know if it could have any use in the -+ kernel, but I know that it would be useful in some embedded projects -+ outside the Linux kernel. -+ -+Conformance to the .xz file format specification -+ -+ There are a couple of corner cases where things have been simplified -+ at expense of detecting errors as early as possible. These should not -+ matter in practice all, since they don't cause security issues. But -+ it is good to know this if testing the code e.g. with the test files -+ from XZ Utils. -+ -+Reporting bugs -+ -+ Before reporting a bug, please check that it's not fixed already -+ at upstream. See to get the -+ latest code. -+ -+ Report bugs to or visit #tukaani on -+ Freenode and talk to Larhzu. I don't actively read LKML or other -+ kernel-related mailing lists, so if there's something I should know, -+ you should email to me personally or use IRC. -+ -+ Don't bother Igor Pavlov with questions about the XZ implementation -+ in the kernel or about XZ Utils. While these two implementations -+ include essential code that is directly based on Igor Pavlov's code, -+ these implementations aren't maintained nor supported by him. -+ -diff --git a/include/linux/xz.h b/include/linux/xz.h -new file mode 100644 -index 0000000..64cffa6 ---- /dev/null -+++ b/include/linux/xz.h -@@ -0,0 +1,264 @@ -+/* -+ * XZ decompressor -+ * -+ * Authors: Lasse Collin -+ * Igor Pavlov -+ * -+ * This file has been put into the public domain. -+ * You can do whatever you want with this file. -+ */ -+ -+#ifndef XZ_H -+#define XZ_H -+ -+#ifdef __KERNEL__ -+# include -+# include -+#else -+# include -+# include -+#endif -+ -+/* In Linux, this is used to make extern functions static when needed. */ -+#ifndef XZ_EXTERN -+# define XZ_EXTERN extern -+#endif -+ -+/** -+ * enum xz_mode - Operation mode -+ * -+ * @XZ_SINGLE: Single-call mode. This uses less RAM than -+ * than multi-call modes, because the LZMA2 -+ * dictionary doesn't need to be allocated as -+ * part of the decoder state. All required data -+ * structures are allocated at initialization, -+ * so xz_dec_run() cannot return XZ_MEM_ERROR. -+ * @XZ_PREALLOC: Multi-call mode with preallocated LZMA2 -+ * dictionary buffer. All data structures are -+ * allocated at initialization, so xz_dec_run() -+ * cannot return XZ_MEM_ERROR. -+ * @XZ_DYNALLOC: Multi-call mode. The LZMA2 dictionary is -+ * allocated once the required size has been -+ * parsed from the stream headers. If the -+ * allocation fails, xz_dec_run() will return -+ * XZ_MEM_ERROR. -+ * -+ * It is possible to enable support only for a subset of the above -+ * modes at compile time by defining XZ_DEC_SINGLE, XZ_DEC_PREALLOC, -+ * or XZ_DEC_DYNALLOC. The xz_dec kernel module is always compiled -+ * with support for all operation modes, but the preboot code may -+ * be built with fewer features to minimize code size. -+ */ -+enum xz_mode { -+ XZ_SINGLE, -+ XZ_PREALLOC, -+ XZ_DYNALLOC -+}; -+ -+/** -+ * enum xz_ret - Return codes -+ * @XZ_OK: Everything is OK so far. More input or more -+ * output space is required to continue. This -+ * return code is possible only in multi-call mode -+ * (XZ_PREALLOC or XZ_DYNALLOC). -+ * @XZ_STREAM_END: Operation finished successfully. -+ * @XZ_UNSUPPORTED_CHECK: Integrity check type is not supported. Decoding -+ * is still possible in multi-call mode by simply -+ * calling xz_dec_run() again. -+ * Note that this return value is used only if -+ * XZ_DEC_ANY_CHECK was defined at build time, -+ * which is not used in the kernel. Unsupported -+ * check types return XZ_OPTIONS_ERROR if -+ * XZ_DEC_ANY_CHECK was not defined at build time. -+ * @XZ_MEM_ERROR: Allocating memory failed. This return code is -+ * possible only if the decoder was initialized -+ * with XZ_DYNALLOC. The amount of memory that was -+ * tried to be allocated was no more than the -+ * dict_max argument given to xz_dec_init(). -+ * @XZ_MEMLIMIT_ERROR: A bigger LZMA2 dictionary would be needed than -+ * allowed by the dict_max argument given to -+ * xz_dec_init(). This return value is possible -+ * only in multi-call mode (XZ_PREALLOC or -+ * XZ_DYNALLOC); the single-call mode (XZ_SINGLE) -+ * ignores the dict_max argument. -+ * @XZ_FORMAT_ERROR: File format was not recognized (wrong magic -+ * bytes). -+ * @XZ_OPTIONS_ERROR: This implementation doesn't support the requested -+ * compression options. In the decoder this means -+ * that the header CRC32 matches, but the header -+ * itself specifies something that we don't support. -+ * @XZ_DATA_ERROR: Compressed data is corrupt. -+ * @XZ_BUF_ERROR: Cannot make any progress. Details are slightly -+ * different between multi-call and single-call -+ * mode; more information below. -+ * -+ * In multi-call mode, XZ_BUF_ERROR is returned when two consecutive calls -+ * to XZ code cannot consume any input and cannot produce any new output. -+ * This happens when there is no new input available, or the output buffer -+ * is full while at least one output byte is still pending. Assuming your -+ * code is not buggy, you can get this error only when decoding a compressed -+ * stream that is truncated or otherwise corrupt. -+ * -+ * In single-call mode, XZ_BUF_ERROR is returned only when the output buffer -+ * is too small or the compressed input is corrupt in a way that makes the -+ * decoder produce more output than the caller expected. When it is -+ * (relatively) clear that the compressed input is truncated, XZ_DATA_ERROR -+ * is used instead of XZ_BUF_ERROR. -+ */ -+enum xz_ret { -+ XZ_OK, -+ XZ_STREAM_END, -+ XZ_UNSUPPORTED_CHECK, -+ XZ_MEM_ERROR, -+ XZ_MEMLIMIT_ERROR, -+ XZ_FORMAT_ERROR, -+ XZ_OPTIONS_ERROR, -+ XZ_DATA_ERROR, -+ XZ_BUF_ERROR -+}; -+ -+/** -+ * struct xz_buf - Passing input and output buffers to XZ code -+ * @in: Beginning of the input buffer. This may be NULL if and only -+ * if in_pos is equal to in_size. -+ * @in_pos: Current position in the input buffer. This must not exceed -+ * in_size. -+ * @in_size: Size of the input buffer -+ * @out: Beginning of the output buffer. This may be NULL if and only -+ * if out_pos is equal to out_size. -+ * @out_pos: Current position in the output buffer. This must not exceed -+ * out_size. -+ * @out_size: Size of the output buffer -+ * -+ * Only the contents of the output buffer from out[out_pos] onward, and -+ * the variables in_pos and out_pos are modified by the XZ code. -+ */ -+struct xz_buf { -+ const uint8_t *in; -+ size_t in_pos; -+ size_t in_size; -+ -+ uint8_t *out; -+ size_t out_pos; -+ size_t out_size; -+}; -+ -+/** -+ * struct xz_dec - Opaque type to hold the XZ decoder state -+ */ -+struct xz_dec; -+ -+/** -+ * xz_dec_init() - Allocate and initialize a XZ decoder state -+ * @mode: Operation mode -+ * @dict_max: Maximum size of the LZMA2 dictionary (history buffer) for -+ * multi-call decoding. This is ignored in single-call mode -+ * (mode == XZ_SINGLE). LZMA2 dictionary is always 2^n bytes -+ * or 2^n + 2^(n-1) bytes (the latter sizes are less common -+ * in practice), so other values for dict_max don't make sense. -+ * In the kernel, dictionary sizes of 64 KiB, 128 KiB, 256 KiB, -+ * 512 KiB, and 1 MiB are probably the only reasonable values, -+ * except for kernel and initramfs images where a bigger -+ * dictionary can be fine and useful. -+ * -+ * Single-call mode (XZ_SINGLE): xz_dec_run() decodes the whole stream at -+ * once. The caller must provide enough output space or the decoding will -+ * fail. The output space is used as the dictionary buffer, which is why -+ * there is no need to allocate the dictionary as part of the decoder's -+ * internal state. -+ * -+ * Because the output buffer is used as the workspace, streams encoded using -+ * a big dictionary are not a problem in single-call mode. It is enough that -+ * the output buffer is big enough to hold the actual uncompressed data; it -+ * can be smaller than the dictionary size stored in the stream headers. -+ * -+ * Multi-call mode with preallocated dictionary (XZ_PREALLOC): dict_max bytes -+ * of memory is preallocated for the LZMA2 dictionary. This way there is no -+ * risk that xz_dec_run() could run out of memory, since xz_dec_run() will -+ * never allocate any memory. Instead, if the preallocated dictionary is too -+ * small for decoding the given input stream, xz_dec_run() will return -+ * XZ_MEMLIMIT_ERROR. Thus, it is important to know what kind of data will be -+ * decoded to avoid allocating excessive amount of memory for the dictionary. -+ * -+ * Multi-call mode with dynamically allocated dictionary (XZ_DYNALLOC): -+ * dict_max specifies the maximum allowed dictionary size that xz_dec_run() -+ * may allocate once it has parsed the dictionary size from the stream -+ * headers. This way excessive allocations can be avoided while still -+ * limiting the maximum memory usage to a sane value to prevent running the -+ * system out of memory when decompressing streams from untrusted sources. -+ * -+ * On success, xz_dec_init() returns a pointer to struct xz_dec, which is -+ * ready to be used with xz_dec_run(). If memory allocation fails, -+ * xz_dec_init() returns NULL. -+ */ -+XZ_EXTERN struct xz_dec *xz_dec_init(enum xz_mode mode, uint32_t dict_max); -+ -+/** -+ * xz_dec_run() - Run the XZ decoder -+ * @s: Decoder state allocated using xz_dec_init() -+ * @b: Input and output buffers -+ * -+ * The possible return values depend on build options and operation mode. -+ * See enum xz_ret for details. -+ * -+ * Note that if an error occurs in single-call mode (return value is not -+ * XZ_STREAM_END), b->in_pos and b->out_pos are not modified and the -+ * contents of the output buffer from b->out[b->out_pos] onward are -+ * undefined. This is true even after XZ_BUF_ERROR, because with some filter -+ * chains, there may be a second pass over the output buffer, and this pass -+ * cannot be properly done if the output buffer is truncated. Thus, you -+ * cannot give the single-call decoder a too small buffer and then expect to -+ * get that amount valid data from the beginning of the stream. You must use -+ * the multi-call decoder if you don't want to uncompress the whole stream. -+ */ -+XZ_EXTERN enum xz_ret xz_dec_run(struct xz_dec *s, struct xz_buf *b); -+ -+/** -+ * xz_dec_reset() - Reset an already allocated decoder state -+ * @s: Decoder state allocated using xz_dec_init() -+ * -+ * This function can be used to reset the multi-call decoder state without -+ * freeing and reallocating memory with xz_dec_end() and xz_dec_init(). -+ * -+ * In single-call mode, xz_dec_reset() is always called in the beginning of -+ * xz_dec_run(). Thus, explicit call to xz_dec_reset() is useful only in -+ * multi-call mode. -+ */ -+XZ_EXTERN void xz_dec_reset(struct xz_dec *s); -+ -+/** -+ * xz_dec_end() - Free the memory allocated for the decoder state -+ * @s: Decoder state allocated using xz_dec_init(). If s is NULL, -+ * this function does nothing. -+ */ -+XZ_EXTERN void xz_dec_end(struct xz_dec *s); -+ -+/* -+ * Standalone build (userspace build or in-kernel build for boot time use) -+ * needs a CRC32 implementation. For normal in-kernel use, kernel's own -+ * CRC32 module is used instead, and users of this module don't need to -+ * care about the functions below. -+ */ -+#ifndef XZ_INTERNAL_CRC32 -+# ifdef __KERNEL__ -+# define XZ_INTERNAL_CRC32 0 -+# else -+# define XZ_INTERNAL_CRC32 1 -+# endif -+#endif -+ -+#if XZ_INTERNAL_CRC32 -+/* -+ * This must be called before any other xz_* function to initialize -+ * the CRC32 lookup table. -+ */ -+XZ_EXTERN void xz_crc32_init(void); -+ -+/* -+ * Update CRC32 value using the polynomial from IEEE-802.3. To start a new -+ * calculation, the third argument must be zero. To continue the calculation, -+ * the previously returned value is passed as the third argument. -+ */ -+XZ_EXTERN uint32_t xz_crc32(const uint8_t *buf, size_t size, uint32_t crc); -+#endif -+#endif -diff --git a/lib/Kconfig b/lib/Kconfig -index fa9bf2c..6090314 100644 ---- a/lib/Kconfig -+++ b/lib/Kconfig -@@ -106,6 +106,8 @@ config LZO_COMPRESS - config LZO_DECOMPRESS - tristate - -+source "lib/xz/Kconfig" -+ - # - # These all provide a common interface (hence the apparent duplication with - # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) -diff --git a/lib/Makefile b/lib/Makefile -index e6a3763..f2f98dd 100644 ---- a/lib/Makefile -+++ b/lib/Makefile -@@ -69,6 +69,7 @@ obj-$(CONFIG_ZLIB_DEFLATE) += zlib_deflate/ - obj-$(CONFIG_REED_SOLOMON) += reed_solomon/ - obj-$(CONFIG_LZO_COMPRESS) += lzo/ - obj-$(CONFIG_LZO_DECOMPRESS) += lzo/ -+obj-$(CONFIG_XZ_DEC) += xz/ - obj-$(CONFIG_RAID6_PQ) += raid6/ - - lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o -diff --git a/lib/xz/Kconfig b/lib/xz/Kconfig -new file mode 100644 -index 0000000..e3b6e18 ---- /dev/null -+++ b/lib/xz/Kconfig -@@ -0,0 +1,59 @@ -+config XZ_DEC -+ tristate "XZ decompression support" -+ select CRC32 -+ help -+ LZMA2 compression algorithm and BCJ filters are supported using -+ the .xz file format as the container. For integrity checking, -+ CRC32 is supported. See Documentation/xz.txt for more information. -+ -+config XZ_DEC_X86 -+ bool "x86 BCJ filter decoder" if EMBEDDED -+ default y -+ depends on XZ_DEC -+ select XZ_DEC_BCJ -+ -+config XZ_DEC_POWERPC -+ bool "PowerPC BCJ filter decoder" if EMBEDDED -+ default y -+ depends on XZ_DEC -+ select XZ_DEC_BCJ -+ -+config XZ_DEC_IA64 -+ bool "IA-64 BCJ filter decoder" if EMBEDDED -+ default y -+ depends on XZ_DEC -+ select XZ_DEC_BCJ -+ -+config XZ_DEC_ARM -+ bool "ARM BCJ filter decoder" if EMBEDDED -+ default y -+ depends on XZ_DEC -+ select XZ_DEC_BCJ -+ -+config XZ_DEC_ARMTHUMB -+ bool "ARM-Thumb BCJ filter decoder" if EMBEDDED -+ default y -+ depends on XZ_DEC -+ select XZ_DEC_BCJ -+ -+config XZ_DEC_SPARC -+ bool "SPARC BCJ filter decoder" if EMBEDDED -+ default y -+ depends on XZ_DEC -+ select XZ_DEC_BCJ -+ -+config XZ_DEC_BCJ -+ bool -+ default n -+ -+config XZ_DEC_TEST -+ tristate "XZ decompressor tester" -+ default n -+ depends on XZ_DEC -+ help -+ This allows passing .xz files to the in-kernel XZ decoder via -+ a character special file. It calculates CRC32 of the decompressed -+ data and writes diagnostics to the system log. -+ -+ Unless you are developing the XZ decoder, you don't need this -+ and should say N. -diff --git a/lib/xz/Makefile b/lib/xz/Makefile -new file mode 100644 -index 0000000..a7fa769 ---- /dev/null -+++ b/lib/xz/Makefile -@@ -0,0 +1,5 @@ -+obj-$(CONFIG_XZ_DEC) += xz_dec.o -+xz_dec-y := xz_dec_syms.o xz_dec_stream.o xz_dec_lzma2.o -+xz_dec-$(CONFIG_XZ_DEC_BCJ) += xz_dec_bcj.o -+ -+obj-$(CONFIG_XZ_DEC_TEST) += xz_dec_test.o -diff --git a/lib/xz/xz_crc32.c b/lib/xz/xz_crc32.c -new file mode 100644 -index 0000000..34532d1 ---- /dev/null -+++ b/lib/xz/xz_crc32.c -@@ -0,0 +1,59 @@ -+/* -+ * CRC32 using the polynomial from IEEE-802.3 -+ * -+ * Authors: Lasse Collin -+ * Igor Pavlov -+ * -+ * This file has been put into the public domain. -+ * You can do whatever you want with this file. -+ */ -+ -+/* -+ * This is not the fastest implementation, but it is pretty compact. -+ * The fastest versions of xz_crc32() on modern CPUs without hardware -+ * accelerated CRC instruction are 3-5 times as fast as this version, -+ * but they are bigger and use more memory for the lookup table. -+ */ -+ -+#include "xz_private.h" -+ -+/* -+ * STATIC_RW_DATA is used in the pre-boot environment on some architectures. -+ * See for details. -+ */ -+#ifndef STATIC_RW_DATA -+# define STATIC_RW_DATA static -+#endif -+ -+STATIC_RW_DATA uint32_t xz_crc32_table[256]; -+ -+XZ_EXTERN void xz_crc32_init(void) -+{ -+ const uint32_t poly = 0xEDB88320; -+ -+ uint32_t i; -+ uint32_t j; -+ uint32_t r; -+ -+ for (i = 0; i < 256; ++i) { -+ r = i; -+ for (j = 0; j < 8; ++j) -+ r = (r >> 1) ^ (poly & ~((r & 1) - 1)); -+ -+ xz_crc32_table[i] = r; -+ } -+ -+ return; -+} -+ -+XZ_EXTERN uint32_t xz_crc32(const uint8_t *buf, size_t size, uint32_t crc) -+{ -+ crc = ~crc; -+ -+ while (size != 0) { -+ crc = xz_crc32_table[*buf++ ^ (crc & 0xFF)] ^ (crc >> 8); -+ --size; -+ } -+ -+ return ~crc; -+} -diff --git a/lib/xz/xz_dec_bcj.c b/lib/xz/xz_dec_bcj.c -new file mode 100644 -index 0000000..e51e255 ---- /dev/null -+++ b/lib/xz/xz_dec_bcj.c -@@ -0,0 +1,561 @@ -+/* -+ * Branch/Call/Jump (BCJ) filter decoders -+ * -+ * Authors: Lasse Collin -+ * Igor Pavlov -+ * -+ * This file has been put into the public domain. -+ * You can do whatever you want with this file. -+ */ -+ -+#include "xz_private.h" -+ -+/* -+ * The rest of the file is inside this ifdef. It makes things a little more -+ * convenient when building without support for any BCJ filters. -+ */ -+#ifdef XZ_DEC_BCJ -+ -+struct xz_dec_bcj { -+ /* Type of the BCJ filter being used */ -+ enum { -+ BCJ_X86 = 4, /* x86 or x86-64 */ -+ BCJ_POWERPC = 5, /* Big endian only */ -+ BCJ_IA64 = 6, /* Big or little endian */ -+ BCJ_ARM = 7, /* Little endian only */ -+ BCJ_ARMTHUMB = 8, /* Little endian only */ -+ BCJ_SPARC = 9 /* Big or little endian */ -+ } type; -+ -+ /* -+ * Return value of the next filter in the chain. We need to preserve -+ * this information across calls, because we must not call the next -+ * filter anymore once it has returned XZ_STREAM_END. -+ */ -+ enum xz_ret ret; -+ -+ /* True if we are operating in single-call mode. */ -+ bool single_call; -+ -+ /* -+ * Absolute position relative to the beginning of the uncompressed -+ * data (in a single .xz Block). We care only about the lowest 32 -+ * bits so this doesn't need to be uint64_t even with big files. -+ */ -+ uint32_t pos; -+ -+ /* x86 filter state */ -+ uint32_t x86_prev_mask; -+ -+ /* Temporary space to hold the variables from struct xz_buf */ -+ uint8_t *out; -+ size_t out_pos; -+ size_t out_size; -+ -+ struct { -+ /* Amount of already filtered data in the beginning of buf */ -+ size_t filtered; -+ -+ /* Total amount of data currently stored in buf */ -+ size_t size; -+ -+ /* -+ * Buffer to hold a mix of filtered and unfiltered data. This -+ * needs to be big enough to hold Alignment + 2 * Look-ahead: -+ * -+ * Type Alignment Look-ahead -+ * x86 1 4 -+ * PowerPC 4 0 -+ * IA-64 16 0 -+ * ARM 4 0 -+ * ARM-Thumb 2 2 -+ * SPARC 4 0 -+ */ -+ uint8_t buf[16]; -+ } temp; -+}; -+ -+#ifdef XZ_DEC_X86 -+/* -+ * This is used to test the most significant byte of a memory address -+ * in an x86 instruction. -+ */ -+static inline int bcj_x86_test_msbyte(uint8_t b) -+{ -+ return b == 0x00 || b == 0xFF; -+} -+ -+static size_t bcj_x86(struct xz_dec_bcj *s, uint8_t *buf, size_t size) -+{ -+ static const bool mask_to_allowed_status[8] -+ = { true, true, true, false, true, false, false, false }; -+ -+ static const uint8_t mask_to_bit_num[8] = { 0, 1, 2, 2, 3, 3, 3, 3 }; -+ -+ size_t i; -+ size_t prev_pos = (size_t)-1; -+ uint32_t prev_mask = s->x86_prev_mask; -+ uint32_t src; -+ uint32_t dest; -+ uint32_t j; -+ uint8_t b; -+ -+ if (size <= 4) -+ return 0; -+ -+ size -= 4; -+ for (i = 0; i < size; ++i) { -+ if ((buf[i] & 0xFE) != 0xE8) -+ continue; -+ -+ prev_pos = i - prev_pos; -+ if (prev_pos > 3) { -+ prev_mask = 0; -+ } else { -+ prev_mask = (prev_mask << (prev_pos - 1)) & 7; -+ if (prev_mask != 0) { -+ b = buf[i + 4 - mask_to_bit_num[prev_mask]]; -+ if (!mask_to_allowed_status[prev_mask] -+ || bcj_x86_test_msbyte(b)) { -+ prev_pos = i; -+ prev_mask = (prev_mask << 1) | 1; -+ continue; -+ } -+ } -+ } -+ -+ prev_pos = i; -+ -+ if (bcj_x86_test_msbyte(buf[i + 4])) { -+ src = get_unaligned_le32(buf + i + 1); -+ while (true) { -+ dest = src - (s->pos + (uint32_t)i + 5); -+ if (prev_mask == 0) -+ break; -+ -+ j = mask_to_bit_num[prev_mask] * 8; -+ b = (uint8_t)(dest >> (24 - j)); -+ if (!bcj_x86_test_msbyte(b)) -+ break; -+ -+ src = dest ^ (((uint32_t)1 << (32 - j)) - 1); -+ } -+ -+ dest &= 0x01FFFFFF; -+ dest |= (uint32_t)0 - (dest & 0x01000000); -+ put_unaligned_le32(dest, buf + i + 1); -+ i += 4; -+ } else { -+ prev_mask = (prev_mask << 1) | 1; -+ } -+ } -+ -+ prev_pos = i - prev_pos; -+ s->x86_prev_mask = prev_pos > 3 ? 0 : prev_mask << (prev_pos - 1); -+ return i; -+} -+#endif -+ -+#ifdef XZ_DEC_POWERPC -+static size_t bcj_powerpc(struct xz_dec_bcj *s, uint8_t *buf, size_t size) -+{ -+ size_t i; -+ uint32_t instr; -+ -+ for (i = 0; i + 4 <= size; i += 4) { -+ instr = get_unaligned_be32(buf + i); -+ if ((instr & 0xFC000003) == 0x48000001) { -+ instr &= 0x03FFFFFC; -+ instr -= s->pos + (uint32_t)i; -+ instr &= 0x03FFFFFC; -+ instr |= 0x48000001; -+ put_unaligned_be32(instr, buf + i); -+ } -+ } -+ -+ return i; -+} -+#endif -+ -+#ifdef XZ_DEC_IA64 -+static size_t bcj_ia64(struct xz_dec_bcj *s, uint8_t *buf, size_t size) -+{ -+ static const uint8_t branch_table[32] = { -+ 0, 0, 0, 0, 0, 0, 0, 0, -+ 0, 0, 0, 0, 0, 0, 0, 0, -+ 4, 4, 6, 6, 0, 0, 7, 7, -+ 4, 4, 0, 0, 4, 4, 0, 0 -+ }; -+ -+ /* -+ * The local variables take a little bit stack space, but it's less -+ * than what LZMA2 decoder takes, so it doesn't make sense to reduce -+ * stack usage here without doing that for the LZMA2 decoder too. -+ */ -+ -+ /* Loop counters */ -+ size_t i; -+ size_t j; -+ -+ /* Instruction slot (0, 1, or 2) in the 128-bit instruction word */ -+ uint32_t slot; -+ -+ /* Bitwise offset of the instruction indicated by slot */ -+ uint32_t bit_pos; -+ -+ /* bit_pos split into byte and bit parts */ -+ uint32_t byte_pos; -+ uint32_t bit_res; -+ -+ /* Address part of an instruction */ -+ uint32_t addr; -+ -+ /* Mask used to detect which instructions to convert */ -+ uint32_t mask; -+ -+ /* 41-bit instruction stored somewhere in the lowest 48 bits */ -+ uint64_t instr; -+ -+ /* Instruction normalized with bit_res for easier manipulation */ -+ uint64_t norm; -+ -+ for (i = 0; i + 16 <= size; i += 16) { -+ mask = branch_table[buf[i] & 0x1F]; -+ for (slot = 0, bit_pos = 5; slot < 3; ++slot, bit_pos += 41) { -+ if (((mask >> slot) & 1) == 0) -+ continue; -+ -+ byte_pos = bit_pos >> 3; -+ bit_res = bit_pos & 7; -+ instr = 0; -+ for (j = 0; j < 6; ++j) -+ instr |= (uint64_t)(buf[i + j + byte_pos]) -+ << (8 * j); -+ -+ norm = instr >> bit_res; -+ -+ if (((norm >> 37) & 0x0F) == 0x05 -+ && ((norm >> 9) & 0x07) == 0) { -+ addr = (norm >> 13) & 0x0FFFFF; -+ addr |= ((uint32_t)(norm >> 36) & 1) << 20; -+ addr <<= 4; -+ addr -= s->pos + (uint32_t)i; -+ addr >>= 4; -+ -+ norm &= ~((uint64_t)0x8FFFFF << 13); -+ norm |= (uint64_t)(addr & 0x0FFFFF) << 13; -+ norm |= (uint64_t)(addr & 0x100000) -+ << (36 - 20); -+ -+ instr &= (1 << bit_res) - 1; -+ instr |= norm << bit_res; -+ -+ for (j = 0; j < 6; j++) -+ buf[i + j + byte_pos] -+ = (uint8_t)(instr >> (8 * j)); -+ } -+ } -+ } -+ -+ return i; -+} -+#endif -+ -+#ifdef XZ_DEC_ARM -+static size_t bcj_arm(struct xz_dec_bcj *s, uint8_t *buf, size_t size) -+{ -+ size_t i; -+ uint32_t addr; -+ -+ for (i = 0; i + 4 <= size; i += 4) { -+ if (buf[i + 3] == 0xEB) { -+ addr = (uint32_t)buf[i] | ((uint32_t)buf[i + 1] << 8) -+ | ((uint32_t)buf[i + 2] << 16); -+ addr <<= 2; -+ addr -= s->pos + (uint32_t)i + 8; -+ addr >>= 2; -+ buf[i] = (uint8_t)addr; -+ buf[i + 1] = (uint8_t)(addr >> 8); -+ buf[i + 2] = (uint8_t)(addr >> 16); -+ } -+ } -+ -+ return i; -+} -+#endif -+ -+#ifdef XZ_DEC_ARMTHUMB -+static size_t bcj_armthumb(struct xz_dec_bcj *s, uint8_t *buf, size_t size) -+{ -+ size_t i; -+ uint32_t addr; -+ -+ for (i = 0; i + 4 <= size; i += 2) { -+ if ((buf[i + 1] & 0xF8) == 0xF0 -+ && (buf[i + 3] & 0xF8) == 0xF8) { -+ addr = (((uint32_t)buf[i + 1] & 0x07) << 19) -+ | ((uint32_t)buf[i] << 11) -+ | (((uint32_t)buf[i + 3] & 0x07) << 8) -+ | (uint32_t)buf[i + 2]; -+ addr <<= 1; -+ addr -= s->pos + (uint32_t)i + 4; -+ addr >>= 1; -+ buf[i + 1] = (uint8_t)(0xF0 | ((addr >> 19) & 0x07)); -+ buf[i] = (uint8_t)(addr >> 11); -+ buf[i + 3] = (uint8_t)(0xF8 | ((addr >> 8) & 0x07)); -+ buf[i + 2] = (uint8_t)addr; -+ i += 2; -+ } -+ } -+ -+ return i; -+} -+#endif -+ -+#ifdef XZ_DEC_SPARC -+static size_t bcj_sparc(struct xz_dec_bcj *s, uint8_t *buf, size_t size) -+{ -+ size_t i; -+ uint32_t instr; -+ -+ for (i = 0; i + 4 <= size; i += 4) { -+ instr = get_unaligned_be32(buf + i); -+ if ((instr >> 22) == 0x100 || (instr >> 22) == 0x1FF) { -+ instr <<= 2; -+ instr -= s->pos + (uint32_t)i; -+ instr >>= 2; -+ instr = ((uint32_t)0x40000000 - (instr & 0x400000)) -+ | 0x40000000 | (instr & 0x3FFFFF); -+ put_unaligned_be32(instr, buf + i); -+ } -+ } -+ -+ return i; -+} -+#endif -+ -+/* -+ * Apply the selected BCJ filter. Update *pos and s->pos to match the amount -+ * of data that got filtered. -+ * -+ * NOTE: This is implemented as a switch statement to avoid using function -+ * pointers, which could be problematic in the kernel boot code, which must -+ * avoid pointers to static data (at least on x86). -+ */ -+static void bcj_apply(struct xz_dec_bcj *s, -+ uint8_t *buf, size_t *pos, size_t size) -+{ -+ size_t filtered; -+ -+ buf += *pos; -+ size -= *pos; -+ -+ switch (s->type) { -+#ifdef XZ_DEC_X86 -+ case BCJ_X86: -+ filtered = bcj_x86(s, buf, size); -+ break; -+#endif -+#ifdef XZ_DEC_POWERPC -+ case BCJ_POWERPC: -+ filtered = bcj_powerpc(s, buf, size); -+ break; -+#endif -+#ifdef XZ_DEC_IA64 -+ case BCJ_IA64: -+ filtered = bcj_ia64(s, buf, size); -+ break; -+#endif -+#ifdef XZ_DEC_ARM -+ case BCJ_ARM: -+ filtered = bcj_arm(s, buf, size); -+ break; -+#endif -+#ifdef XZ_DEC_ARMTHUMB -+ case BCJ_ARMTHUMB: -+ filtered = bcj_armthumb(s, buf, size); -+ break; -+#endif -+#ifdef XZ_DEC_SPARC -+ case BCJ_SPARC: -+ filtered = bcj_sparc(s, buf, size); -+ break; -+#endif -+ default: -+ /* Never reached but silence compiler warnings. */ -+ filtered = 0; -+ break; -+ } -+ -+ *pos += filtered; -+ s->pos += filtered; -+} -+ -+/* -+ * Flush pending filtered data from temp to the output buffer. -+ * Move the remaining mixture of possibly filtered and unfiltered -+ * data to the beginning of temp. -+ */ -+static void bcj_flush(struct xz_dec_bcj *s, struct xz_buf *b) -+{ -+ size_t copy_size; -+ -+ copy_size = min_t(size_t, s->temp.filtered, b->out_size - b->out_pos); -+ memcpy(b->out + b->out_pos, s->temp.buf, copy_size); -+ b->out_pos += copy_size; -+ -+ s->temp.filtered -= copy_size; -+ s->temp.size -= copy_size; -+ memmove(s->temp.buf, s->temp.buf + copy_size, s->temp.size); -+} -+ -+/* -+ * The BCJ filter functions are primitive in sense that they process the -+ * data in chunks of 1-16 bytes. To hide this issue, this function does -+ * some buffering. -+ */ -+XZ_EXTERN enum xz_ret xz_dec_bcj_run(struct xz_dec_bcj *s, -+ struct xz_dec_lzma2 *lzma2, -+ struct xz_buf *b) -+{ -+ size_t out_start; -+ -+ /* -+ * Flush pending already filtered data to the output buffer. Return -+ * immediatelly if we couldn't flush everything, or if the next -+ * filter in the chain had already returned XZ_STREAM_END. -+ */ -+ if (s->temp.filtered > 0) { -+ bcj_flush(s, b); -+ if (s->temp.filtered > 0) -+ return XZ_OK; -+ -+ if (s->ret == XZ_STREAM_END) -+ return XZ_STREAM_END; -+ } -+ -+ /* -+ * If we have more output space than what is currently pending in -+ * temp, copy the unfiltered data from temp to the output buffer -+ * and try to fill the output buffer by decoding more data from the -+ * next filter in the chain. Apply the BCJ filter on the new data -+ * in the output buffer. If everything cannot be filtered, copy it -+ * to temp and rewind the output buffer position accordingly. -+ */ -+ if (s->temp.size < b->out_size - b->out_pos) { -+ out_start = b->out_pos; -+ memcpy(b->out + b->out_pos, s->temp.buf, s->temp.size); -+ b->out_pos += s->temp.size; -+ -+ s->ret = xz_dec_lzma2_run(lzma2, b); -+ if (s->ret != XZ_STREAM_END -+ && (s->ret != XZ_OK || s->single_call)) -+ return s->ret; -+ -+ bcj_apply(s, b->out, &out_start, b->out_pos); -+ -+ /* -+ * As an exception, if the next filter returned XZ_STREAM_END, -+ * we can do that too, since the last few bytes that remain -+ * unfiltered are meant to remain unfiltered. -+ */ -+ if (s->ret == XZ_STREAM_END) -+ return XZ_STREAM_END; -+ -+ s->temp.size = b->out_pos - out_start; -+ b->out_pos -= s->temp.size; -+ memcpy(s->temp.buf, b->out + b->out_pos, s->temp.size); -+ } -+ -+ /* -+ * If we have unfiltered data in temp, try to fill by decoding more -+ * data from the next filter. Apply the BCJ filter on temp. Then we -+ * hopefully can fill the actual output buffer by copying filtered -+ * data from temp. A mix of filtered and unfiltered data may be left -+ * in temp; it will be taken care on the next call to this function. -+ */ -+ if (s->temp.size > 0) { -+ /* Make b->out{,_pos,_size} temporarily point to s->temp. */ -+ s->out = b->out; -+ s->out_pos = b->out_pos; -+ s->out_size = b->out_size; -+ b->out = s->temp.buf; -+ b->out_pos = s->temp.size; -+ b->out_size = sizeof(s->temp.buf); -+ -+ s->ret = xz_dec_lzma2_run(lzma2, b); -+ -+ s->temp.size = b->out_pos; -+ b->out = s->out; -+ b->out_pos = s->out_pos; -+ b->out_size = s->out_size; -+ -+ if (s->ret != XZ_OK && s->ret != XZ_STREAM_END) -+ return s->ret; -+ -+ bcj_apply(s, s->temp.buf, &s->temp.filtered, s->temp.size); -+ -+ /* -+ * If the next filter returned XZ_STREAM_END, we mark that -+ * everything is filtered, since the last unfiltered bytes -+ * of the stream are meant to be left as is. -+ */ -+ if (s->ret == XZ_STREAM_END) -+ s->temp.filtered = s->temp.size; -+ -+ bcj_flush(s, b); -+ if (s->temp.filtered > 0) -+ return XZ_OK; -+ } -+ -+ return s->ret; -+} -+ -+XZ_EXTERN struct xz_dec_bcj *xz_dec_bcj_create(bool single_call) -+{ -+ struct xz_dec_bcj *s = kmalloc(sizeof(*s), GFP_KERNEL); -+ if (s != NULL) -+ s->single_call = single_call; -+ -+ return s; -+} -+ -+XZ_EXTERN enum xz_ret xz_dec_bcj_reset(struct xz_dec_bcj *s, uint8_t id) -+{ -+ switch (id) { -+#ifdef XZ_DEC_X86 -+ case BCJ_X86: -+#endif -+#ifdef XZ_DEC_POWERPC -+ case BCJ_POWERPC: -+#endif -+#ifdef XZ_DEC_IA64 -+ case BCJ_IA64: -+#endif -+#ifdef XZ_DEC_ARM -+ case BCJ_ARM: -+#endif -+#ifdef XZ_DEC_ARMTHUMB -+ case BCJ_ARMTHUMB: -+#endif -+#ifdef XZ_DEC_SPARC -+ case BCJ_SPARC: -+#endif -+ break; -+ -+ default: -+ /* Unsupported Filter ID */ -+ return XZ_OPTIONS_ERROR; -+ } -+ -+ s->type = id; -+ s->ret = XZ_OK; -+ s->pos = 0; -+ s->x86_prev_mask = 0; -+ s->temp.filtered = 0; -+ s->temp.size = 0; -+ -+ return XZ_OK; -+} -+ -+#endif -diff --git a/lib/xz/xz_dec_lzma2.c b/lib/xz/xz_dec_lzma2.c -new file mode 100644 -index 0000000..ea5fa4f ---- /dev/null -+++ b/lib/xz/xz_dec_lzma2.c -@@ -0,0 +1,1171 @@ -+/* -+ * LZMA2 decoder -+ * -+ * Authors: Lasse Collin -+ * Igor Pavlov -+ * -+ * This file has been put into the public domain. -+ * You can do whatever you want with this file. -+ */ -+ -+#include "xz_private.h" -+#include "xz_lzma2.h" -+ -+/* -+ * Range decoder initialization eats the first five bytes of each LZMA chunk. -+ */ -+#define RC_INIT_BYTES 5 -+ -+/* -+ * Minimum number of usable input buffer to safely decode one LZMA symbol. -+ * The worst case is that we decode 22 bits using probabilities and 26 -+ * direct bits. This may decode at maximum of 20 bytes of input. However, -+ * lzma_main() does an extra normalization before returning, thus we -+ * need to put 21 here. -+ */ -+#define LZMA_IN_REQUIRED 21 -+ -+/* -+ * Dictionary (history buffer) -+ * -+ * These are always true: -+ * start <= pos <= full <= end -+ * pos <= limit <= end -+ * -+ * In multi-call mode, also these are true: -+ * end == size -+ * size <= size_max -+ * allocated <= size -+ * -+ * Most of these variables are size_t to support single-call mode, -+ * in which the dictionary variables address the actual output -+ * buffer directly. -+ */ -+struct dictionary { -+ /* Beginning of the history buffer */ -+ uint8_t *buf; -+ -+ /* Old position in buf (before decoding more data) */ -+ size_t start; -+ -+ /* Position in buf */ -+ size_t pos; -+ -+ /* -+ * How full dictionary is. This is used to detect corrupt input that -+ * would read beyond the beginning of the uncompressed stream. -+ */ -+ size_t full; -+ -+ /* Write limit; we don't write to buf[limit] or later bytes. */ -+ size_t limit; -+ -+ /* -+ * End of the dictionary buffer. In multi-call mode, this is -+ * the same as the dictionary size. In single-call mode, this -+ * indicates the size of the output buffer. -+ */ -+ size_t end; -+ -+ /* -+ * Size of the dictionary as specified in Block Header. This is used -+ * together with "full" to detect corrupt input that would make us -+ * read beyond the beginning of the uncompressed stream. -+ */ -+ uint32_t size; -+ -+ /* -+ * Maximum allowed dictionary size in multi-call mode. -+ * This is ignored in single-call mode. -+ */ -+ uint32_t size_max; -+ -+ /* -+ * Amount of memory currently allocated for the dictionary. -+ * This is used only with XZ_DYNALLOC. (With XZ_PREALLOC, -+ * size_max is always the same as the allocated size.) -+ */ -+ uint32_t allocated; -+ -+ /* Operation mode */ -+ enum xz_mode mode; -+}; -+ -+/* Range decoder */ -+struct rc_dec { -+ uint32_t range; -+ uint32_t code; -+ -+ /* -+ * Number of initializing bytes remaining to be read -+ * by rc_read_init(). -+ */ -+ uint32_t init_bytes_left; -+ -+ /* -+ * Buffer from which we read our input. It can be either -+ * temp.buf or the caller-provided input buffer. -+ */ -+ const uint8_t *in; -+ size_t in_pos; -+ size_t in_limit; -+}; -+ -+/* Probabilities for a length decoder. */ -+struct lzma_len_dec { -+ /* Probability of match length being at least 10 */ -+ uint16_t choice; -+ -+ /* Probability of match length being at least 18 */ -+ uint16_t choice2; -+ -+ /* Probabilities for match lengths 2-9 */ -+ uint16_t low[POS_STATES_MAX][LEN_LOW_SYMBOLS]; -+ -+ /* Probabilities for match lengths 10-17 */ -+ uint16_t mid[POS_STATES_MAX][LEN_MID_SYMBOLS]; -+ -+ /* Probabilities for match lengths 18-273 */ -+ uint16_t high[LEN_HIGH_SYMBOLS]; -+}; -+ -+struct lzma_dec { -+ /* Distances of latest four matches */ -+ uint32_t rep0; -+ uint32_t rep1; -+ uint32_t rep2; -+ uint32_t rep3; -+ -+ /* Types of the most recently seen LZMA symbols */ -+ enum lzma_state state; -+ -+ /* -+ * Length of a match. This is updated so that dict_repeat can -+ * be called again to finish repeating the whole match. -+ */ -+ uint32_t len; -+ -+ /* -+ * LZMA properties or related bit masks (number of literal -+ * context bits, a mask dervied from the number of literal -+ * position bits, and a mask dervied from the number -+ * position bits) -+ */ -+ uint32_t lc; -+ uint32_t literal_pos_mask; /* (1 << lp) - 1 */ -+ uint32_t pos_mask; /* (1 << pb) - 1 */ -+ -+ /* If 1, it's a match. Otherwise it's a single 8-bit literal. */ -+ uint16_t is_match[STATES][POS_STATES_MAX]; -+ -+ /* If 1, it's a repeated match. The distance is one of rep0 .. rep3. */ -+ uint16_t is_rep[STATES]; -+ -+ /* -+ * If 0, distance of a repeated match is rep0. -+ * Otherwise check is_rep1. -+ */ -+ uint16_t is_rep0[STATES]; -+ -+ /* -+ * If 0, distance of a repeated match is rep1. -+ * Otherwise check is_rep2. -+ */ -+ uint16_t is_rep1[STATES]; -+ -+ /* If 0, distance of a repeated match is rep2. Otherwise it is rep3. */ -+ uint16_t is_rep2[STATES]; -+ -+ /* -+ * If 1, the repeated match has length of one byte. Otherwise -+ * the length is decoded from rep_len_decoder. -+ */ -+ uint16_t is_rep0_long[STATES][POS_STATES_MAX]; -+ -+ /* -+ * Probability tree for the highest two bits of the match -+ * distance. There is a separate probability tree for match -+ * lengths of 2 (i.e. MATCH_LEN_MIN), 3, 4, and [5, 273]. -+ */ -+ uint16_t dist_slot[DIST_STATES][DIST_SLOTS]; -+ -+ /* -+ * Probility trees for additional bits for match distance -+ * when the distance is in the range [4, 127]. -+ */ -+ uint16_t dist_special[FULL_DISTANCES - DIST_MODEL_END]; -+ -+ /* -+ * Probability tree for the lowest four bits of a match -+ * distance that is equal to or greater than 128. -+ */ -+ uint16_t dist_align[ALIGN_SIZE]; -+ -+ /* Length of a normal match */ -+ struct lzma_len_dec match_len_dec; -+ -+ /* Length of a repeated match */ -+ struct lzma_len_dec rep_len_dec; -+ -+ /* Probabilities of literals */ -+ uint16_t literal[LITERAL_CODERS_MAX][LITERAL_CODER_SIZE]; -+}; -+ -+struct lzma2_dec { -+ /* Position in xz_dec_lzma2_run(). */ -+ enum lzma2_seq { -+ SEQ_CONTROL, -+ SEQ_UNCOMPRESSED_1, -+ SEQ_UNCOMPRESSED_2, -+ SEQ_COMPRESSED_0, -+ SEQ_COMPRESSED_1, -+ SEQ_PROPERTIES, -+ SEQ_LZMA_PREPARE, -+ SEQ_LZMA_RUN, -+ SEQ_COPY -+ } sequence; -+ -+ /* Next position after decoding the compressed size of the chunk. */ -+ enum lzma2_seq next_sequence; -+ -+ /* Uncompressed size of LZMA chunk (2 MiB at maximum) */ -+ uint32_t uncompressed; -+ -+ /* -+ * Compressed size of LZMA chunk or compressed/uncompressed -+ * size of uncompressed chunk (64 KiB at maximum) -+ */ -+ uint32_t compressed; -+ -+ /* -+ * True if dictionary reset is needed. This is false before -+ * the first chunk (LZMA or uncompressed). -+ */ -+ bool need_dict_reset; -+ -+ /* -+ * True if new LZMA properties are needed. This is false -+ * before the first LZMA chunk. -+ */ -+ bool need_props; -+}; -+ -+struct xz_dec_lzma2 { -+ /* -+ * The order below is important on x86 to reduce code size and -+ * it shouldn't hurt on other platforms. Everything up to and -+ * including lzma.pos_mask are in the first 128 bytes on x86-32, -+ * which allows using smaller instructions to access those -+ * variables. On x86-64, fewer variables fit into the first 128 -+ * bytes, but this is still the best order without sacrificing -+ * the readability by splitting the structures. -+ */ -+ struct rc_dec rc; -+ struct dictionary dict; -+ struct lzma2_dec lzma2; -+ struct lzma_dec lzma; -+ -+ /* -+ * Temporary buffer which holds small number of input bytes between -+ * decoder calls. See lzma2_lzma() for details. -+ */ -+ struct { -+ uint32_t size; -+ uint8_t buf[3 * LZMA_IN_REQUIRED]; -+ } temp; -+}; -+ -+/************** -+ * Dictionary * -+ **************/ -+ -+/* -+ * Reset the dictionary state. When in single-call mode, set up the beginning -+ * of the dictionary to point to the actual output buffer. -+ */ -+static void dict_reset(struct dictionary *dict, struct xz_buf *b) -+{ -+ if (DEC_IS_SINGLE(dict->mode)) { -+ dict->buf = b->out + b->out_pos; -+ dict->end = b->out_size - b->out_pos; -+ } -+ -+ dict->start = 0; -+ dict->pos = 0; -+ dict->limit = 0; -+ dict->full = 0; -+} -+ -+/* Set dictionary write limit */ -+static void dict_limit(struct dictionary *dict, size_t out_max) -+{ -+ if (dict->end - dict->pos <= out_max) -+ dict->limit = dict->end; -+ else -+ dict->limit = dict->pos + out_max; -+} -+ -+/* Return true if at least one byte can be written into the dictionary. */ -+static inline bool dict_has_space(const struct dictionary *dict) -+{ -+ return dict->pos < dict->limit; -+} -+ -+/* -+ * Get a byte from the dictionary at the given distance. The distance is -+ * assumed to valid, or as a special case, zero when the dictionary is -+ * still empty. This special case is needed for single-call decoding to -+ * avoid writing a '\0' to the end of the destination buffer. -+ */ -+static inline uint32_t dict_get(const struct dictionary *dict, uint32_t dist) -+{ -+ size_t offset = dict->pos - dist - 1; -+ -+ if (dist >= dict->pos) -+ offset += dict->end; -+ -+ return dict->full > 0 ? dict->buf[offset] : 0; -+} -+ -+/* -+ * Put one byte into the dictionary. It is assumed that there is space for it. -+ */ -+static inline void dict_put(struct dictionary *dict, uint8_t byte) -+{ -+ dict->buf[dict->pos++] = byte; -+ -+ if (dict->full < dict->pos) -+ dict->full = dict->pos; -+} -+ -+/* -+ * Repeat given number of bytes from the given distance. If the distance is -+ * invalid, false is returned. On success, true is returned and *len is -+ * updated to indicate how many bytes were left to be repeated. -+ */ -+static bool dict_repeat(struct dictionary *dict, uint32_t *len, uint32_t dist) -+{ -+ size_t back; -+ uint32_t left; -+ -+ if (dist >= dict->full || dist >= dict->size) -+ return false; -+ -+ left = min_t(size_t, dict->limit - dict->pos, *len); -+ *len -= left; -+ -+ back = dict->pos - dist - 1; -+ if (dist >= dict->pos) -+ back += dict->end; -+ -+ do { -+ dict->buf[dict->pos++] = dict->buf[back++]; -+ if (back == dict->end) -+ back = 0; -+ } while (--left > 0); -+ -+ if (dict->full < dict->pos) -+ dict->full = dict->pos; -+ -+ return true; -+} -+ -+/* Copy uncompressed data as is from input to dictionary and output buffers. */ -+static void dict_uncompressed(struct dictionary *dict, struct xz_buf *b, -+ uint32_t *left) -+{ -+ size_t copy_size; -+ -+ while (*left > 0 && b->in_pos < b->in_size -+ && b->out_pos < b->out_size) { -+ copy_size = min(b->in_size - b->in_pos, -+ b->out_size - b->out_pos); -+ if (copy_size > dict->end - dict->pos) -+ copy_size = dict->end - dict->pos; -+ if (copy_size > *left) -+ copy_size = *left; -+ -+ *left -= copy_size; -+ -+ memcpy(dict->buf + dict->pos, b->in + b->in_pos, copy_size); -+ dict->pos += copy_size; -+ -+ if (dict->full < dict->pos) -+ dict->full = dict->pos; -+ -+ if (DEC_IS_MULTI(dict->mode)) { -+ if (dict->pos == dict->end) -+ dict->pos = 0; -+ -+ memcpy(b->out + b->out_pos, b->in + b->in_pos, -+ copy_size); -+ } -+ -+ dict->start = dict->pos; -+ -+ b->out_pos += copy_size; -+ b->in_pos += copy_size; -+ } -+} -+ -+/* -+ * Flush pending data from dictionary to b->out. It is assumed that there is -+ * enough space in b->out. This is guaranteed because caller uses dict_limit() -+ * before decoding data into the dictionary. -+ */ -+static uint32_t dict_flush(struct dictionary *dict, struct xz_buf *b) -+{ -+ size_t copy_size = dict->pos - dict->start; -+ -+ if (DEC_IS_MULTI(dict->mode)) { -+ if (dict->pos == dict->end) -+ dict->pos = 0; -+ -+ memcpy(b->out + b->out_pos, dict->buf + dict->start, -+ copy_size); -+ } -+ -+ dict->start = dict->pos; -+ b->out_pos += copy_size; -+ return copy_size; -+} -+ -+/***************** -+ * Range decoder * -+ *****************/ -+ -+/* Reset the range decoder. */ -+static void rc_reset(struct rc_dec *rc) -+{ -+ rc->range = (uint32_t)-1; -+ rc->code = 0; -+ rc->init_bytes_left = RC_INIT_BYTES; -+} -+ -+/* -+ * Read the first five initial bytes into rc->code if they haven't been -+ * read already. (Yes, the first byte gets completely ignored.) -+ */ -+static bool rc_read_init(struct rc_dec *rc, struct xz_buf *b) -+{ -+ while (rc->init_bytes_left > 0) { -+ if (b->in_pos == b->in_size) -+ return false; -+ -+ rc->code = (rc->code << 8) + b->in[b->in_pos++]; -+ --rc->init_bytes_left; -+ } -+ -+ return true; -+} -+ -+/* Return true if there may not be enough input for the next decoding loop. */ -+static inline bool rc_limit_exceeded(const struct rc_dec *rc) -+{ -+ return rc->in_pos > rc->in_limit; -+} -+ -+/* -+ * Return true if it is possible (from point of view of range decoder) that -+ * we have reached the end of the LZMA chunk. -+ */ -+static inline bool rc_is_finished(const struct rc_dec *rc) -+{ -+ return rc->code == 0; -+} -+ -+/* Read the next input byte if needed. */ -+static __always_inline void rc_normalize(struct rc_dec *rc) -+{ -+ if (rc->range < RC_TOP_VALUE) { -+ rc->range <<= RC_SHIFT_BITS; -+ rc->code = (rc->code << RC_SHIFT_BITS) + rc->in[rc->in_pos++]; -+ } -+} -+ -+/* -+ * Decode one bit. In some versions, this function has been splitted in three -+ * functions so that the compiler is supposed to be able to more easily avoid -+ * an extra branch. In this particular version of the LZMA decoder, this -+ * doesn't seem to be a good idea (tested with GCC 3.3.6, 3.4.6, and 4.3.3 -+ * on x86). Using a non-splitted version results in nicer looking code too. -+ * -+ * NOTE: This must return an int. Do not make it return a bool or the speed -+ * of the code generated by GCC 3.x decreases 10-15 %. (GCC 4.3 doesn't care, -+ * and it generates 10-20 % faster code than GCC 3.x from this file anyway.) -+ */ -+static __always_inline int rc_bit(struct rc_dec *rc, uint16_t *prob) -+{ -+ uint32_t bound; -+ int bit; -+ -+ rc_normalize(rc); -+ bound = (rc->range >> RC_BIT_MODEL_TOTAL_BITS) * *prob; -+ if (rc->code < bound) { -+ rc->range = bound; -+ *prob += (RC_BIT_MODEL_TOTAL - *prob) >> RC_MOVE_BITS; -+ bit = 0; -+ } else { -+ rc->range -= bound; -+ rc->code -= bound; -+ *prob -= *prob >> RC_MOVE_BITS; -+ bit = 1; -+ } -+ -+ return bit; -+} -+ -+/* Decode a bittree starting from the most significant bit. */ -+static __always_inline uint32_t rc_bittree(struct rc_dec *rc, -+ uint16_t *probs, uint32_t limit) -+{ -+ uint32_t symbol = 1; -+ -+ do { -+ if (rc_bit(rc, &probs[symbol])) -+ symbol = (symbol << 1) + 1; -+ else -+ symbol <<= 1; -+ } while (symbol < limit); -+ -+ return symbol; -+} -+ -+/* Decode a bittree starting from the least significant bit. */ -+static __always_inline void rc_bittree_reverse(struct rc_dec *rc, -+ uint16_t *probs, -+ uint32_t *dest, uint32_t limit) -+{ -+ uint32_t symbol = 1; -+ uint32_t i = 0; -+ -+ do { -+ if (rc_bit(rc, &probs[symbol])) { -+ symbol = (symbol << 1) + 1; -+ *dest += 1 << i; -+ } else { -+ symbol <<= 1; -+ } -+ } while (++i < limit); -+} -+ -+/* Decode direct bits (fixed fifty-fifty probability) */ -+static inline void rc_direct(struct rc_dec *rc, uint32_t *dest, uint32_t limit) -+{ -+ uint32_t mask; -+ -+ do { -+ rc_normalize(rc); -+ rc->range >>= 1; -+ rc->code -= rc->range; -+ mask = (uint32_t)0 - (rc->code >> 31); -+ rc->code += rc->range & mask; -+ *dest = (*dest << 1) + (mask + 1); -+ } while (--limit > 0); -+} -+ -+/******** -+ * LZMA * -+ ********/ -+ -+/* Get pointer to literal coder probability array. */ -+static uint16_t *lzma_literal_probs(struct xz_dec_lzma2 *s) -+{ -+ uint32_t prev_byte = dict_get(&s->dict, 0); -+ uint32_t low = prev_byte >> (8 - s->lzma.lc); -+ uint32_t high = (s->dict.pos & s->lzma.literal_pos_mask) << s->lzma.lc; -+ return s->lzma.literal[low + high]; -+} -+ -+/* Decode a literal (one 8-bit byte) */ -+static void lzma_literal(struct xz_dec_lzma2 *s) -+{ -+ uint16_t *probs; -+ uint32_t symbol; -+ uint32_t match_byte; -+ uint32_t match_bit; -+ uint32_t offset; -+ uint32_t i; -+ -+ probs = lzma_literal_probs(s); -+ -+ if (lzma_state_is_literal(s->lzma.state)) { -+ symbol = rc_bittree(&s->rc, probs, 0x100); -+ } else { -+ symbol = 1; -+ match_byte = dict_get(&s->dict, s->lzma.rep0) << 1; -+ offset = 0x100; -+ -+ do { -+ match_bit = match_byte & offset; -+ match_byte <<= 1; -+ i = offset + match_bit + symbol; -+ -+ if (rc_bit(&s->rc, &probs[i])) { -+ symbol = (symbol << 1) + 1; -+ offset &= match_bit; -+ } else { -+ symbol <<= 1; -+ offset &= ~match_bit; -+ } -+ } while (symbol < 0x100); -+ } -+ -+ dict_put(&s->dict, (uint8_t)symbol); -+ lzma_state_literal(&s->lzma.state); -+} -+ -+/* Decode the length of the match into s->lzma.len. */ -+static void lzma_len(struct xz_dec_lzma2 *s, struct lzma_len_dec *l, -+ uint32_t pos_state) -+{ -+ uint16_t *probs; -+ uint32_t limit; -+ -+ if (!rc_bit(&s->rc, &l->choice)) { -+ probs = l->low[pos_state]; -+ limit = LEN_LOW_SYMBOLS; -+ s->lzma.len = MATCH_LEN_MIN; -+ } else { -+ if (!rc_bit(&s->rc, &l->choice2)) { -+ probs = l->mid[pos_state]; -+ limit = LEN_MID_SYMBOLS; -+ s->lzma.len = MATCH_LEN_MIN + LEN_LOW_SYMBOLS; -+ } else { -+ probs = l->high; -+ limit = LEN_HIGH_SYMBOLS; -+ s->lzma.len = MATCH_LEN_MIN + LEN_LOW_SYMBOLS -+ + LEN_MID_SYMBOLS; -+ } -+ } -+ -+ s->lzma.len += rc_bittree(&s->rc, probs, limit) - limit; -+} -+ -+/* Decode a match. The distance will be stored in s->lzma.rep0. */ -+static void lzma_match(struct xz_dec_lzma2 *s, uint32_t pos_state) -+{ -+ uint16_t *probs; -+ uint32_t dist_slot; -+ uint32_t limit; -+ -+ lzma_state_match(&s->lzma.state); -+ -+ s->lzma.rep3 = s->lzma.rep2; -+ s->lzma.rep2 = s->lzma.rep1; -+ s->lzma.rep1 = s->lzma.rep0; -+ -+ lzma_len(s, &s->lzma.match_len_dec, pos_state); -+ -+ probs = s->lzma.dist_slot[lzma_get_dist_state(s->lzma.len)]; -+ dist_slot = rc_bittree(&s->rc, probs, DIST_SLOTS) - DIST_SLOTS; -+ -+ if (dist_slot < DIST_MODEL_START) { -+ s->lzma.rep0 = dist_slot; -+ } else { -+ limit = (dist_slot >> 1) - 1; -+ s->lzma.rep0 = 2 + (dist_slot & 1); -+ -+ if (dist_slot < DIST_MODEL_END) { -+ s->lzma.rep0 <<= limit; -+ probs = s->lzma.dist_special + s->lzma.rep0 -+ - dist_slot - 1; -+ rc_bittree_reverse(&s->rc, probs, -+ &s->lzma.rep0, limit); -+ } else { -+ rc_direct(&s->rc, &s->lzma.rep0, limit - ALIGN_BITS); -+ s->lzma.rep0 <<= ALIGN_BITS; -+ rc_bittree_reverse(&s->rc, s->lzma.dist_align, -+ &s->lzma.rep0, ALIGN_BITS); -+ } -+ } -+} -+ -+/* -+ * Decode a repeated match. The distance is one of the four most recently -+ * seen matches. The distance will be stored in s->lzma.rep0. -+ */ -+static void lzma_rep_match(struct xz_dec_lzma2 *s, uint32_t pos_state) -+{ -+ uint32_t tmp; -+ -+ if (!rc_bit(&s->rc, &s->lzma.is_rep0[s->lzma.state])) { -+ if (!rc_bit(&s->rc, &s->lzma.is_rep0_long[ -+ s->lzma.state][pos_state])) { -+ lzma_state_short_rep(&s->lzma.state); -+ s->lzma.len = 1; -+ return; -+ } -+ } else { -+ if (!rc_bit(&s->rc, &s->lzma.is_rep1[s->lzma.state])) { -+ tmp = s->lzma.rep1; -+ } else { -+ if (!rc_bit(&s->rc, &s->lzma.is_rep2[s->lzma.state])) { -+ tmp = s->lzma.rep2; -+ } else { -+ tmp = s->lzma.rep3; -+ s->lzma.rep3 = s->lzma.rep2; -+ } -+ -+ s->lzma.rep2 = s->lzma.rep1; -+ } -+ -+ s->lzma.rep1 = s->lzma.rep0; -+ s->lzma.rep0 = tmp; -+ } -+ -+ lzma_state_long_rep(&s->lzma.state); -+ lzma_len(s, &s->lzma.rep_len_dec, pos_state); -+} -+ -+/* LZMA decoder core */ -+static bool lzma_main(struct xz_dec_lzma2 *s) -+{ -+ uint32_t pos_state; -+ -+ /* -+ * If the dictionary was reached during the previous call, try to -+ * finish the possibly pending repeat in the dictionary. -+ */ -+ if (dict_has_space(&s->dict) && s->lzma.len > 0) -+ dict_repeat(&s->dict, &s->lzma.len, s->lzma.rep0); -+ -+ /* -+ * Decode more LZMA symbols. One iteration may consume up to -+ * LZMA_IN_REQUIRED - 1 bytes. -+ */ -+ while (dict_has_space(&s->dict) && !rc_limit_exceeded(&s->rc)) { -+ pos_state = s->dict.pos & s->lzma.pos_mask; -+ -+ if (!rc_bit(&s->rc, &s->lzma.is_match[ -+ s->lzma.state][pos_state])) { -+ lzma_literal(s); -+ } else { -+ if (rc_bit(&s->rc, &s->lzma.is_rep[s->lzma.state])) -+ lzma_rep_match(s, pos_state); -+ else -+ lzma_match(s, pos_state); -+ -+ if (!dict_repeat(&s->dict, &s->lzma.len, s->lzma.rep0)) -+ return false; -+ } -+ } -+ -+ /* -+ * Having the range decoder always normalized when we are outside -+ * this function makes it easier to correctly handle end of the chunk. -+ */ -+ rc_normalize(&s->rc); -+ -+ return true; -+} -+ -+/* -+ * Reset the LZMA decoder and range decoder state. Dictionary is nore reset -+ * here, because LZMA state may be reset without resetting the dictionary. -+ */ -+static void lzma_reset(struct xz_dec_lzma2 *s) -+{ -+ uint16_t *probs; -+ size_t i; -+ -+ s->lzma.state = STATE_LIT_LIT; -+ s->lzma.rep0 = 0; -+ s->lzma.rep1 = 0; -+ s->lzma.rep2 = 0; -+ s->lzma.rep3 = 0; -+ -+ /* -+ * All probabilities are initialized to the same value. This hack -+ * makes the code smaller by avoiding a separate loop for each -+ * probability array. -+ * -+ * This could be optimized so that only that part of literal -+ * probabilities that are actually required. In the common case -+ * we would write 12 KiB less. -+ */ -+ probs = s->lzma.is_match[0]; -+ for (i = 0; i < PROBS_TOTAL; ++i) -+ probs[i] = RC_BIT_MODEL_TOTAL / 2; -+ -+ rc_reset(&s->rc); -+} -+ -+/* -+ * Decode and validate LZMA properties (lc/lp/pb) and calculate the bit masks -+ * from the decoded lp and pb values. On success, the LZMA decoder state is -+ * reset and true is returned. -+ */ -+static bool lzma_props(struct xz_dec_lzma2 *s, uint8_t props) -+{ -+ if (props > (4 * 5 + 4) * 9 + 8) -+ return false; -+ -+ s->lzma.pos_mask = 0; -+ while (props >= 9 * 5) { -+ props -= 9 * 5; -+ ++s->lzma.pos_mask; -+ } -+ -+ s->lzma.pos_mask = (1 << s->lzma.pos_mask) - 1; -+ -+ s->lzma.literal_pos_mask = 0; -+ while (props >= 9) { -+ props -= 9; -+ ++s->lzma.literal_pos_mask; -+ } -+ -+ s->lzma.lc = props; -+ -+ if (s->lzma.lc + s->lzma.literal_pos_mask > 4) -+ return false; -+ -+ s->lzma.literal_pos_mask = (1 << s->lzma.literal_pos_mask) - 1; -+ -+ lzma_reset(s); -+ -+ return true; -+} -+ -+/********* -+ * LZMA2 * -+ *********/ -+ -+/* -+ * The LZMA decoder assumes that if the input limit (s->rc.in_limit) hasn't -+ * been exceeded, it is safe to read up to LZMA_IN_REQUIRED bytes. This -+ * wrapper function takes care of making the LZMA decoder's assumption safe. -+ * -+ * As long as there is plenty of input left to be decoded in the current LZMA -+ * chunk, we decode directly from the caller-supplied input buffer until -+ * there's LZMA_IN_REQUIRED bytes left. Those remaining bytes are copied into -+ * s->temp.buf, which (hopefully) gets filled on the next call to this -+ * function. We decode a few bytes from the temporary buffer so that we can -+ * continue decoding from the caller-supplied input buffer again. -+ */ -+static bool lzma2_lzma(struct xz_dec_lzma2 *s, struct xz_buf *b) -+{ -+ size_t in_avail; -+ uint32_t tmp; -+ -+ in_avail = b->in_size - b->in_pos; -+ if (s->temp.size > 0 || s->lzma2.compressed == 0) { -+ tmp = 2 * LZMA_IN_REQUIRED - s->temp.size; -+ if (tmp > s->lzma2.compressed - s->temp.size) -+ tmp = s->lzma2.compressed - s->temp.size; -+ if (tmp > in_avail) -+ tmp = in_avail; -+ -+ memcpy(s->temp.buf + s->temp.size, b->in + b->in_pos, tmp); -+ -+ if (s->temp.size + tmp == s->lzma2.compressed) { -+ memzero(s->temp.buf + s->temp.size + tmp, -+ sizeof(s->temp.buf) -+ - s->temp.size - tmp); -+ s->rc.in_limit = s->temp.size + tmp; -+ } else if (s->temp.size + tmp < LZMA_IN_REQUIRED) { -+ s->temp.size += tmp; -+ b->in_pos += tmp; -+ return true; -+ } else { -+ s->rc.in_limit = s->temp.size + tmp - LZMA_IN_REQUIRED; -+ } -+ -+ s->rc.in = s->temp.buf; -+ s->rc.in_pos = 0; -+ -+ if (!lzma_main(s) || s->rc.in_pos > s->temp.size + tmp) -+ return false; -+ -+ s->lzma2.compressed -= s->rc.in_pos; -+ -+ if (s->rc.in_pos < s->temp.size) { -+ s->temp.size -= s->rc.in_pos; -+ memmove(s->temp.buf, s->temp.buf + s->rc.in_pos, -+ s->temp.size); -+ return true; -+ } -+ -+ b->in_pos += s->rc.in_pos - s->temp.size; -+ s->temp.size = 0; -+ } -+ -+ in_avail = b->in_size - b->in_pos; -+ if (in_avail >= LZMA_IN_REQUIRED) { -+ s->rc.in = b->in; -+ s->rc.in_pos = b->in_pos; -+ -+ if (in_avail >= s->lzma2.compressed + LZMA_IN_REQUIRED) -+ s->rc.in_limit = b->in_pos + s->lzma2.compressed; -+ else -+ s->rc.in_limit = b->in_size - LZMA_IN_REQUIRED; -+ -+ if (!lzma_main(s)) -+ return false; -+ -+ in_avail = s->rc.in_pos - b->in_pos; -+ if (in_avail > s->lzma2.compressed) -+ return false; -+ -+ s->lzma2.compressed -= in_avail; -+ b->in_pos = s->rc.in_pos; -+ } -+ -+ in_avail = b->in_size - b->in_pos; -+ if (in_avail < LZMA_IN_REQUIRED) { -+ if (in_avail > s->lzma2.compressed) -+ in_avail = s->lzma2.compressed; -+ -+ memcpy(s->temp.buf, b->in + b->in_pos, in_avail); -+ s->temp.size = in_avail; -+ b->in_pos += in_avail; -+ } -+ -+ return true; -+} -+ -+/* -+ * Take care of the LZMA2 control layer, and forward the job of actual LZMA -+ * decoding or copying of uncompressed chunks to other functions. -+ */ -+XZ_EXTERN enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s, -+ struct xz_buf *b) -+{ -+ uint32_t tmp; -+ -+ while (b->in_pos < b->in_size || s->lzma2.sequence == SEQ_LZMA_RUN) { -+ switch (s->lzma2.sequence) { -+ case SEQ_CONTROL: -+ /* -+ * LZMA2 control byte -+ * -+ * Exact values: -+ * 0x00 End marker -+ * 0x01 Dictionary reset followed by -+ * an uncompressed chunk -+ * 0x02 Uncompressed chunk (no dictionary reset) -+ * -+ * Highest three bits (s->control & 0xE0): -+ * 0xE0 Dictionary reset, new properties and state -+ * reset, followed by LZMA compressed chunk -+ * 0xC0 New properties and state reset, followed -+ * by LZMA compressed chunk (no dictionary -+ * reset) -+ * 0xA0 State reset using old properties, -+ * followed by LZMA compressed chunk (no -+ * dictionary reset) -+ * 0x80 LZMA chunk (no dictionary or state reset) -+ * -+ * For LZMA compressed chunks, the lowest five bits -+ * (s->control & 1F) are the highest bits of the -+ * uncompressed size (bits 16-20). -+ * -+ * A new LZMA2 stream must begin with a dictionary -+ * reset. The first LZMA chunk must set new -+ * properties and reset the LZMA state. -+ * -+ * Values that don't match anything described above -+ * are invalid and we return XZ_DATA_ERROR. -+ */ -+ tmp = b->in[b->in_pos++]; -+ -+ if (tmp >= 0xE0 || tmp == 0x01) { -+ s->lzma2.need_props = true; -+ s->lzma2.need_dict_reset = false; -+ dict_reset(&s->dict, b); -+ } else if (s->lzma2.need_dict_reset) { -+ return XZ_DATA_ERROR; -+ } -+ -+ if (tmp >= 0x80) { -+ s->lzma2.uncompressed = (tmp & 0x1F) << 16; -+ s->lzma2.sequence = SEQ_UNCOMPRESSED_1; -+ -+ if (tmp >= 0xC0) { -+ /* -+ * When there are new properties, -+ * state reset is done at -+ * SEQ_PROPERTIES. -+ */ -+ s->lzma2.need_props = false; -+ s->lzma2.next_sequence -+ = SEQ_PROPERTIES; -+ -+ } else if (s->lzma2.need_props) { -+ return XZ_DATA_ERROR; -+ -+ } else { -+ s->lzma2.next_sequence -+ = SEQ_LZMA_PREPARE; -+ if (tmp >= 0xA0) -+ lzma_reset(s); -+ } -+ } else { -+ if (tmp == 0x00) -+ return XZ_STREAM_END; -+ -+ if (tmp > 0x02) -+ return XZ_DATA_ERROR; -+ -+ s->lzma2.sequence = SEQ_COMPRESSED_0; -+ s->lzma2.next_sequence = SEQ_COPY; -+ } -+ -+ break; -+ -+ case SEQ_UNCOMPRESSED_1: -+ s->lzma2.uncompressed -+ += (uint32_t)b->in[b->in_pos++] << 8; -+ s->lzma2.sequence = SEQ_UNCOMPRESSED_2; -+ break; -+ -+ case SEQ_UNCOMPRESSED_2: -+ s->lzma2.uncompressed -+ += (uint32_t)b->in[b->in_pos++] + 1; -+ s->lzma2.sequence = SEQ_COMPRESSED_0; -+ break; -+ -+ case SEQ_COMPRESSED_0: -+ s->lzma2.compressed -+ = (uint32_t)b->in[b->in_pos++] << 8; -+ s->lzma2.sequence = SEQ_COMPRESSED_1; -+ break; -+ -+ case SEQ_COMPRESSED_1: -+ s->lzma2.compressed -+ += (uint32_t)b->in[b->in_pos++] + 1; -+ s->lzma2.sequence = s->lzma2.next_sequence; -+ break; -+ -+ case SEQ_PROPERTIES: -+ if (!lzma_props(s, b->in[b->in_pos++])) -+ return XZ_DATA_ERROR; -+ -+ s->lzma2.sequence = SEQ_LZMA_PREPARE; -+ -+ case SEQ_LZMA_PREPARE: -+ if (s->lzma2.compressed < RC_INIT_BYTES) -+ return XZ_DATA_ERROR; -+ -+ if (!rc_read_init(&s->rc, b)) -+ return XZ_OK; -+ -+ s->lzma2.compressed -= RC_INIT_BYTES; -+ s->lzma2.sequence = SEQ_LZMA_RUN; -+ -+ case SEQ_LZMA_RUN: -+ /* -+ * Set dictionary limit to indicate how much we want -+ * to be encoded at maximum. Decode new data into the -+ * dictionary. Flush the new data from dictionary to -+ * b->out. Check if we finished decoding this chunk. -+ * In case the dictionary got full but we didn't fill -+ * the output buffer yet, we may run this loop -+ * multiple times without changing s->lzma2.sequence. -+ */ -+ dict_limit(&s->dict, min_t(size_t, -+ b->out_size - b->out_pos, -+ s->lzma2.uncompressed)); -+ if (!lzma2_lzma(s, b)) -+ return XZ_DATA_ERROR; -+ -+ s->lzma2.uncompressed -= dict_flush(&s->dict, b); -+ -+ if (s->lzma2.uncompressed == 0) { -+ if (s->lzma2.compressed > 0 || s->lzma.len > 0 -+ || !rc_is_finished(&s->rc)) -+ return XZ_DATA_ERROR; -+ -+ rc_reset(&s->rc); -+ s->lzma2.sequence = SEQ_CONTROL; -+ -+ } else if (b->out_pos == b->out_size -+ || (b->in_pos == b->in_size -+ && s->temp.size -+ < s->lzma2.compressed)) { -+ return XZ_OK; -+ } -+ -+ break; -+ -+ case SEQ_COPY: -+ dict_uncompressed(&s->dict, b, &s->lzma2.compressed); -+ if (s->lzma2.compressed > 0) -+ return XZ_OK; -+ -+ s->lzma2.sequence = SEQ_CONTROL; -+ break; -+ } -+ } -+ -+ return XZ_OK; -+} -+ -+XZ_EXTERN struct xz_dec_lzma2 *xz_dec_lzma2_create(enum xz_mode mode, -+ uint32_t dict_max) -+{ -+ struct xz_dec_lzma2 *s = kmalloc(sizeof(*s), GFP_KERNEL); -+ if (s == NULL) -+ return NULL; -+ -+ s->dict.mode = mode; -+ s->dict.size_max = dict_max; -+ -+ if (DEC_IS_PREALLOC(mode)) { -+ s->dict.buf = vmalloc(dict_max); -+ if (s->dict.buf == NULL) { -+ kfree(s); -+ return NULL; -+ } -+ } else if (DEC_IS_DYNALLOC(mode)) { -+ s->dict.buf = NULL; -+ s->dict.allocated = 0; -+ } -+ -+ return s; -+} -+ -+XZ_EXTERN enum xz_ret xz_dec_lzma2_reset(struct xz_dec_lzma2 *s, uint8_t props) -+{ -+ /* This limits dictionary size to 3 GiB to keep parsing simpler. */ -+ if (props > 39) -+ return XZ_OPTIONS_ERROR; -+ -+ s->dict.size = 2 + (props & 1); -+ s->dict.size <<= (props >> 1) + 11; -+ -+ if (DEC_IS_MULTI(s->dict.mode)) { -+ if (s->dict.size > s->dict.size_max) -+ return XZ_MEMLIMIT_ERROR; -+ -+ s->dict.end = s->dict.size; -+ -+ if (DEC_IS_DYNALLOC(s->dict.mode)) { -+ if (s->dict.allocated < s->dict.size) { -+ vfree(s->dict.buf); -+ s->dict.buf = vmalloc(s->dict.size); -+ if (s->dict.buf == NULL) { -+ s->dict.allocated = 0; -+ return XZ_MEM_ERROR; -+ } -+ } -+ } -+ } -+ -+ s->lzma.len = 0; -+ -+ s->lzma2.sequence = SEQ_CONTROL; -+ s->lzma2.need_dict_reset = true; -+ -+ s->temp.size = 0; -+ -+ return XZ_OK; -+} -+ -+XZ_EXTERN void xz_dec_lzma2_end(struct xz_dec_lzma2 *s) -+{ -+ if (DEC_IS_MULTI(s->dict.mode)) -+ vfree(s->dict.buf); -+ -+ kfree(s); -+} -diff --git a/lib/xz/xz_dec_stream.c b/lib/xz/xz_dec_stream.c -new file mode 100644 -index 0000000..ac809b1 ---- /dev/null -+++ b/lib/xz/xz_dec_stream.c -@@ -0,0 +1,821 @@ -+/* -+ * .xz Stream decoder -+ * -+ * Author: Lasse Collin -+ * -+ * This file has been put into the public domain. -+ * You can do whatever you want with this file. -+ */ -+ -+#include "xz_private.h" -+#include "xz_stream.h" -+ -+/* Hash used to validate the Index field */ -+struct xz_dec_hash { -+ vli_type unpadded; -+ vli_type uncompressed; -+ uint32_t crc32; -+}; -+ -+struct xz_dec { -+ /* Position in dec_main() */ -+ enum { -+ SEQ_STREAM_HEADER, -+ SEQ_BLOCK_START, -+ SEQ_BLOCK_HEADER, -+ SEQ_BLOCK_UNCOMPRESS, -+ SEQ_BLOCK_PADDING, -+ SEQ_BLOCK_CHECK, -+ SEQ_INDEX, -+ SEQ_INDEX_PADDING, -+ SEQ_INDEX_CRC32, -+ SEQ_STREAM_FOOTER -+ } sequence; -+ -+ /* Position in variable-length integers and Check fields */ -+ uint32_t pos; -+ -+ /* Variable-length integer decoded by dec_vli() */ -+ vli_type vli; -+ -+ /* Saved in_pos and out_pos */ -+ size_t in_start; -+ size_t out_start; -+ -+ /* CRC32 value in Block or Index */ -+ uint32_t crc32; -+ -+ /* Type of the integrity check calculated from uncompressed data */ -+ enum xz_check check_type; -+ -+ /* Operation mode */ -+ enum xz_mode mode; -+ -+ /* -+ * True if the next call to xz_dec_run() is allowed to return -+ * XZ_BUF_ERROR. -+ */ -+ bool allow_buf_error; -+ -+ /* Information stored in Block Header */ -+ struct { -+ /* -+ * Value stored in the Compressed Size field, or -+ * VLI_UNKNOWN if Compressed Size is not present. -+ */ -+ vli_type compressed; -+ -+ /* -+ * Value stored in the Uncompressed Size field, or -+ * VLI_UNKNOWN if Uncompressed Size is not present. -+ */ -+ vli_type uncompressed; -+ -+ /* Size of the Block Header field */ -+ uint32_t size; -+ } block_header; -+ -+ /* Information collected when decoding Blocks */ -+ struct { -+ /* Observed compressed size of the current Block */ -+ vli_type compressed; -+ -+ /* Observed uncompressed size of the current Block */ -+ vli_type uncompressed; -+ -+ /* Number of Blocks decoded so far */ -+ vli_type count; -+ -+ /* -+ * Hash calculated from the Block sizes. This is used to -+ * validate the Index field. -+ */ -+ struct xz_dec_hash hash; -+ } block; -+ -+ /* Variables needed when verifying the Index field */ -+ struct { -+ /* Position in dec_index() */ -+ enum { -+ SEQ_INDEX_COUNT, -+ SEQ_INDEX_UNPADDED, -+ SEQ_INDEX_UNCOMPRESSED -+ } sequence; -+ -+ /* Size of the Index in bytes */ -+ vli_type size; -+ -+ /* Number of Records (matches block.count in valid files) */ -+ vli_type count; -+ -+ /* -+ * Hash calculated from the Records (matches block.hash in -+ * valid files). -+ */ -+ struct xz_dec_hash hash; -+ } index; -+ -+ /* -+ * Temporary buffer needed to hold Stream Header, Block Header, -+ * and Stream Footer. The Block Header is the biggest (1 KiB) -+ * so we reserve space according to that. buf[] has to be aligned -+ * to a multiple of four bytes; the size_t variables before it -+ * should guarantee this. -+ */ -+ struct { -+ size_t pos; -+ size_t size; -+ uint8_t buf[1024]; -+ } temp; -+ -+ struct xz_dec_lzma2 *lzma2; -+ -+#ifdef XZ_DEC_BCJ -+ struct xz_dec_bcj *bcj; -+ bool bcj_active; -+#endif -+}; -+ -+#ifdef XZ_DEC_ANY_CHECK -+/* Sizes of the Check field with different Check IDs */ -+static const uint8_t check_sizes[16] = { -+ 0, -+ 4, 4, 4, -+ 8, 8, 8, -+ 16, 16, 16, -+ 32, 32, 32, -+ 64, 64, 64 -+}; -+#endif -+ -+/* -+ * Fill s->temp by copying data starting from b->in[b->in_pos]. Caller -+ * must have set s->temp.pos to indicate how much data we are supposed -+ * to copy into s->temp.buf. Return true once s->temp.pos has reached -+ * s->temp.size. -+ */ -+static bool fill_temp(struct xz_dec *s, struct xz_buf *b) -+{ -+ size_t copy_size = min_t(size_t, -+ b->in_size - b->in_pos, s->temp.size - s->temp.pos); -+ -+ memcpy(s->temp.buf + s->temp.pos, b->in + b->in_pos, copy_size); -+ b->in_pos += copy_size; -+ s->temp.pos += copy_size; -+ -+ if (s->temp.pos == s->temp.size) { -+ s->temp.pos = 0; -+ return true; -+ } -+ -+ return false; -+} -+ -+/* Decode a variable-length integer (little-endian base-128 encoding) */ -+static enum xz_ret dec_vli(struct xz_dec *s, const uint8_t *in, -+ size_t *in_pos, size_t in_size) -+{ -+ uint8_t byte; -+ -+ if (s->pos == 0) -+ s->vli = 0; -+ -+ while (*in_pos < in_size) { -+ byte = in[*in_pos]; -+ ++*in_pos; -+ -+ s->vli |= (vli_type)(byte & 0x7F) << s->pos; -+ -+ if ((byte & 0x80) == 0) { -+ /* Don't allow non-minimal encodings. */ -+ if (byte == 0 && s->pos != 0) -+ return XZ_DATA_ERROR; -+ -+ s->pos = 0; -+ return XZ_STREAM_END; -+ } -+ -+ s->pos += 7; -+ if (s->pos == 7 * VLI_BYTES_MAX) -+ return XZ_DATA_ERROR; -+ } -+ -+ return XZ_OK; -+} -+ -+/* -+ * Decode the Compressed Data field from a Block. Update and validate -+ * the observed compressed and uncompressed sizes of the Block so that -+ * they don't exceed the values possibly stored in the Block Header -+ * (validation assumes that no integer overflow occurs, since vli_type -+ * is normally uint64_t). Update the CRC32 if presence of the CRC32 -+ * field was indicated in Stream Header. -+ * -+ * Once the decoding is finished, validate that the observed sizes match -+ * the sizes possibly stored in the Block Header. Update the hash and -+ * Block count, which are later used to validate the Index field. -+ */ -+static enum xz_ret dec_block(struct xz_dec *s, struct xz_buf *b) -+{ -+ enum xz_ret ret; -+ -+ s->in_start = b->in_pos; -+ s->out_start = b->out_pos; -+ -+#ifdef XZ_DEC_BCJ -+ if (s->bcj_active) -+ ret = xz_dec_bcj_run(s->bcj, s->lzma2, b); -+ else -+#endif -+ ret = xz_dec_lzma2_run(s->lzma2, b); -+ -+ s->block.compressed += b->in_pos - s->in_start; -+ s->block.uncompressed += b->out_pos - s->out_start; -+ -+ /* -+ * There is no need to separately check for VLI_UNKNOWN, since -+ * the observed sizes are always smaller than VLI_UNKNOWN. -+ */ -+ if (s->block.compressed > s->block_header.compressed -+ || s->block.uncompressed -+ > s->block_header.uncompressed) -+ return XZ_DATA_ERROR; -+ -+ if (s->check_type == XZ_CHECK_CRC32) -+ s->crc32 = xz_crc32(b->out + s->out_start, -+ b->out_pos - s->out_start, s->crc32); -+ -+ if (ret == XZ_STREAM_END) { -+ if (s->block_header.compressed != VLI_UNKNOWN -+ && s->block_header.compressed -+ != s->block.compressed) -+ return XZ_DATA_ERROR; -+ -+ if (s->block_header.uncompressed != VLI_UNKNOWN -+ && s->block_header.uncompressed -+ != s->block.uncompressed) -+ return XZ_DATA_ERROR; -+ -+ s->block.hash.unpadded += s->block_header.size -+ + s->block.compressed; -+ -+#ifdef XZ_DEC_ANY_CHECK -+ s->block.hash.unpadded += check_sizes[s->check_type]; -+#else -+ if (s->check_type == XZ_CHECK_CRC32) -+ s->block.hash.unpadded += 4; -+#endif -+ -+ s->block.hash.uncompressed += s->block.uncompressed; -+ s->block.hash.crc32 = xz_crc32( -+ (const uint8_t *)&s->block.hash, -+ sizeof(s->block.hash), s->block.hash.crc32); -+ -+ ++s->block.count; -+ } -+ -+ return ret; -+} -+ -+/* Update the Index size and the CRC32 value. */ -+static void index_update(struct xz_dec *s, const struct xz_buf *b) -+{ -+ size_t in_used = b->in_pos - s->in_start; -+ s->index.size += in_used; -+ s->crc32 = xz_crc32(b->in + s->in_start, in_used, s->crc32); -+} -+ -+/* -+ * Decode the Number of Records, Unpadded Size, and Uncompressed Size -+ * fields from the Index field. That is, Index Padding and CRC32 are not -+ * decoded by this function. -+ * -+ * This can return XZ_OK (more input needed), XZ_STREAM_END (everything -+ * successfully decoded), or XZ_DATA_ERROR (input is corrupt). -+ */ -+static enum xz_ret dec_index(struct xz_dec *s, struct xz_buf *b) -+{ -+ enum xz_ret ret; -+ -+ do { -+ ret = dec_vli(s, b->in, &b->in_pos, b->in_size); -+ if (ret != XZ_STREAM_END) { -+ index_update(s, b); -+ return ret; -+ } -+ -+ switch (s->index.sequence) { -+ case SEQ_INDEX_COUNT: -+ s->index.count = s->vli; -+ -+ /* -+ * Validate that the Number of Records field -+ * indicates the same number of Records as -+ * there were Blocks in the Stream. -+ */ -+ if (s->index.count != s->block.count) -+ return XZ_DATA_ERROR; -+ -+ s->index.sequence = SEQ_INDEX_UNPADDED; -+ break; -+ -+ case SEQ_INDEX_UNPADDED: -+ s->index.hash.unpadded += s->vli; -+ s->index.sequence = SEQ_INDEX_UNCOMPRESSED; -+ break; -+ -+ case SEQ_INDEX_UNCOMPRESSED: -+ s->index.hash.uncompressed += s->vli; -+ s->index.hash.crc32 = xz_crc32( -+ (const uint8_t *)&s->index.hash, -+ sizeof(s->index.hash), -+ s->index.hash.crc32); -+ --s->index.count; -+ s->index.sequence = SEQ_INDEX_UNPADDED; -+ break; -+ } -+ } while (s->index.count > 0); -+ -+ return XZ_STREAM_END; -+} -+ -+/* -+ * Validate that the next four input bytes match the value of s->crc32. -+ * s->pos must be zero when starting to validate the first byte. -+ */ -+static enum xz_ret crc32_validate(struct xz_dec *s, struct xz_buf *b) -+{ -+ do { -+ if (b->in_pos == b->in_size) -+ return XZ_OK; -+ -+ if (((s->crc32 >> s->pos) & 0xFF) != b->in[b->in_pos++]) -+ return XZ_DATA_ERROR; -+ -+ s->pos += 8; -+ -+ } while (s->pos < 32); -+ -+ s->crc32 = 0; -+ s->pos = 0; -+ -+ return XZ_STREAM_END; -+} -+ -+#ifdef XZ_DEC_ANY_CHECK -+/* -+ * Skip over the Check field when the Check ID is not supported. -+ * Returns true once the whole Check field has been skipped over. -+ */ -+static bool check_skip(struct xz_dec *s, struct xz_buf *b) -+{ -+ while (s->pos < check_sizes[s->check_type]) { -+ if (b->in_pos == b->in_size) -+ return false; -+ -+ ++b->in_pos; -+ ++s->pos; -+ } -+ -+ s->pos = 0; -+ -+ return true; -+} -+#endif -+ -+/* Decode the Stream Header field (the first 12 bytes of the .xz Stream). */ -+static enum xz_ret dec_stream_header(struct xz_dec *s) -+{ -+ if (!memeq(s->temp.buf, HEADER_MAGIC, HEADER_MAGIC_SIZE)) -+ return XZ_FORMAT_ERROR; -+ -+ if (xz_crc32(s->temp.buf + HEADER_MAGIC_SIZE, 2, 0) -+ != get_le32(s->temp.buf + HEADER_MAGIC_SIZE + 2)) -+ return XZ_DATA_ERROR; -+ -+ if (s->temp.buf[HEADER_MAGIC_SIZE] != 0) -+ return XZ_OPTIONS_ERROR; -+ -+ /* -+ * Of integrity checks, we support only none (Check ID = 0) and -+ * CRC32 (Check ID = 1). However, if XZ_DEC_ANY_CHECK is defined, -+ * we will accept other check types too, but then the check won't -+ * be verified and a warning (XZ_UNSUPPORTED_CHECK) will be given. -+ */ -+ s->check_type = s->temp.buf[HEADER_MAGIC_SIZE + 1]; -+ -+#ifdef XZ_DEC_ANY_CHECK -+ if (s->check_type > XZ_CHECK_MAX) -+ return XZ_OPTIONS_ERROR; -+ -+ if (s->check_type > XZ_CHECK_CRC32) -+ return XZ_UNSUPPORTED_CHECK; -+#else -+ if (s->check_type > XZ_CHECK_CRC32) -+ return XZ_OPTIONS_ERROR; -+#endif -+ -+ return XZ_OK; -+} -+ -+/* Decode the Stream Footer field (the last 12 bytes of the .xz Stream) */ -+static enum xz_ret dec_stream_footer(struct xz_dec *s) -+{ -+ if (!memeq(s->temp.buf + 10, FOOTER_MAGIC, FOOTER_MAGIC_SIZE)) -+ return XZ_DATA_ERROR; -+ -+ if (xz_crc32(s->temp.buf + 4, 6, 0) != get_le32(s->temp.buf)) -+ return XZ_DATA_ERROR; -+ -+ /* -+ * Validate Backward Size. Note that we never added the size of the -+ * Index CRC32 field to s->index.size, thus we use s->index.size / 4 -+ * instead of s->index.size / 4 - 1. -+ */ -+ if ((s->index.size >> 2) != get_le32(s->temp.buf + 4)) -+ return XZ_DATA_ERROR; -+ -+ if (s->temp.buf[8] != 0 || s->temp.buf[9] != s->check_type) -+ return XZ_DATA_ERROR; -+ -+ /* -+ * Use XZ_STREAM_END instead of XZ_OK to be more convenient -+ * for the caller. -+ */ -+ return XZ_STREAM_END; -+} -+ -+/* Decode the Block Header and initialize the filter chain. */ -+static enum xz_ret dec_block_header(struct xz_dec *s) -+{ -+ enum xz_ret ret; -+ -+ /* -+ * Validate the CRC32. We know that the temp buffer is at least -+ * eight bytes so this is safe. -+ */ -+ s->temp.size -= 4; -+ if (xz_crc32(s->temp.buf, s->temp.size, 0) -+ != get_le32(s->temp.buf + s->temp.size)) -+ return XZ_DATA_ERROR; -+ -+ s->temp.pos = 2; -+ -+ /* -+ * Catch unsupported Block Flags. We support only one or two filters -+ * in the chain, so we catch that with the same test. -+ */ -+#ifdef XZ_DEC_BCJ -+ if (s->temp.buf[1] & 0x3E) -+#else -+ if (s->temp.buf[1] & 0x3F) -+#endif -+ return XZ_OPTIONS_ERROR; -+ -+ /* Compressed Size */ -+ if (s->temp.buf[1] & 0x40) { -+ if (dec_vli(s, s->temp.buf, &s->temp.pos, s->temp.size) -+ != XZ_STREAM_END) -+ return XZ_DATA_ERROR; -+ -+ s->block_header.compressed = s->vli; -+ } else { -+ s->block_header.compressed = VLI_UNKNOWN; -+ } -+ -+ /* Uncompressed Size */ -+ if (s->temp.buf[1] & 0x80) { -+ if (dec_vli(s, s->temp.buf, &s->temp.pos, s->temp.size) -+ != XZ_STREAM_END) -+ return XZ_DATA_ERROR; -+ -+ s->block_header.uncompressed = s->vli; -+ } else { -+ s->block_header.uncompressed = VLI_UNKNOWN; -+ } -+ -+#ifdef XZ_DEC_BCJ -+ /* If there are two filters, the first one must be a BCJ filter. */ -+ s->bcj_active = s->temp.buf[1] & 0x01; -+ if (s->bcj_active) { -+ if (s->temp.size - s->temp.pos < 2) -+ return XZ_OPTIONS_ERROR; -+ -+ ret = xz_dec_bcj_reset(s->bcj, s->temp.buf[s->temp.pos++]); -+ if (ret != XZ_OK) -+ return ret; -+ -+ /* -+ * We don't support custom start offset, -+ * so Size of Properties must be zero. -+ */ -+ if (s->temp.buf[s->temp.pos++] != 0x00) -+ return XZ_OPTIONS_ERROR; -+ } -+#endif -+ -+ /* Valid Filter Flags always take at least two bytes. */ -+ if (s->temp.size - s->temp.pos < 2) -+ return XZ_DATA_ERROR; -+ -+ /* Filter ID = LZMA2 */ -+ if (s->temp.buf[s->temp.pos++] != 0x21) -+ return XZ_OPTIONS_ERROR; -+ -+ /* Size of Properties = 1-byte Filter Properties */ -+ if (s->temp.buf[s->temp.pos++] != 0x01) -+ return XZ_OPTIONS_ERROR; -+ -+ /* Filter Properties contains LZMA2 dictionary size. */ -+ if (s->temp.size - s->temp.pos < 1) -+ return XZ_DATA_ERROR; -+ -+ ret = xz_dec_lzma2_reset(s->lzma2, s->temp.buf[s->temp.pos++]); -+ if (ret != XZ_OK) -+ return ret; -+ -+ /* The rest must be Header Padding. */ -+ while (s->temp.pos < s->temp.size) -+ if (s->temp.buf[s->temp.pos++] != 0x00) -+ return XZ_OPTIONS_ERROR; -+ -+ s->temp.pos = 0; -+ s->block.compressed = 0; -+ s->block.uncompressed = 0; -+ -+ return XZ_OK; -+} -+ -+static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b) -+{ -+ enum xz_ret ret; -+ -+ /* -+ * Store the start position for the case when we are in the middle -+ * of the Index field. -+ */ -+ s->in_start = b->in_pos; -+ -+ while (true) { -+ switch (s->sequence) { -+ case SEQ_STREAM_HEADER: -+ /* -+ * Stream Header is copied to s->temp, and then -+ * decoded from there. This way if the caller -+ * gives us only little input at a time, we can -+ * still keep the Stream Header decoding code -+ * simple. Similar approach is used in many places -+ * in this file. -+ */ -+ if (!fill_temp(s, b)) -+ return XZ_OK; -+ -+ /* -+ * If dec_stream_header() returns -+ * XZ_UNSUPPORTED_CHECK, it is still possible -+ * to continue decoding if working in multi-call -+ * mode. Thus, update s->sequence before calling -+ * dec_stream_header(). -+ */ -+ s->sequence = SEQ_BLOCK_START; -+ -+ ret = dec_stream_header(s); -+ if (ret != XZ_OK) -+ return ret; -+ -+ case SEQ_BLOCK_START: -+ /* We need one byte of input to continue. */ -+ if (b->in_pos == b->in_size) -+ return XZ_OK; -+ -+ /* See if this is the beginning of the Index field. */ -+ if (b->in[b->in_pos] == 0) { -+ s->in_start = b->in_pos++; -+ s->sequence = SEQ_INDEX; -+ break; -+ } -+ -+ /* -+ * Calculate the size of the Block Header and -+ * prepare to decode it. -+ */ -+ s->block_header.size -+ = ((uint32_t)b->in[b->in_pos] + 1) * 4; -+ -+ s->temp.size = s->block_header.size; -+ s->temp.pos = 0; -+ s->sequence = SEQ_BLOCK_HEADER; -+ -+ case SEQ_BLOCK_HEADER: -+ if (!fill_temp(s, b)) -+ return XZ_OK; -+ -+ ret = dec_block_header(s); -+ if (ret != XZ_OK) -+ return ret; -+ -+ s->sequence = SEQ_BLOCK_UNCOMPRESS; -+ -+ case SEQ_BLOCK_UNCOMPRESS: -+ ret = dec_block(s, b); -+ if (ret != XZ_STREAM_END) -+ return ret; -+ -+ s->sequence = SEQ_BLOCK_PADDING; -+ -+ case SEQ_BLOCK_PADDING: -+ /* -+ * Size of Compressed Data + Block Padding -+ * must be a multiple of four. We don't need -+ * s->block.compressed for anything else -+ * anymore, so we use it here to test the size -+ * of the Block Padding field. -+ */ -+ while (s->block.compressed & 3) { -+ if (b->in_pos == b->in_size) -+ return XZ_OK; -+ -+ if (b->in[b->in_pos++] != 0) -+ return XZ_DATA_ERROR; -+ -+ ++s->block.compressed; -+ } -+ -+ s->sequence = SEQ_BLOCK_CHECK; -+ -+ case SEQ_BLOCK_CHECK: -+ if (s->check_type == XZ_CHECK_CRC32) { -+ ret = crc32_validate(s, b); -+ if (ret != XZ_STREAM_END) -+ return ret; -+ } -+#ifdef XZ_DEC_ANY_CHECK -+ else if (!check_skip(s, b)) { -+ return XZ_OK; -+ } -+#endif -+ -+ s->sequence = SEQ_BLOCK_START; -+ break; -+ -+ case SEQ_INDEX: -+ ret = dec_index(s, b); -+ if (ret != XZ_STREAM_END) -+ return ret; -+ -+ s->sequence = SEQ_INDEX_PADDING; -+ -+ case SEQ_INDEX_PADDING: -+ while ((s->index.size + (b->in_pos - s->in_start)) -+ & 3) { -+ if (b->in_pos == b->in_size) { -+ index_update(s, b); -+ return XZ_OK; -+ } -+ -+ if (b->in[b->in_pos++] != 0) -+ return XZ_DATA_ERROR; -+ } -+ -+ /* Finish the CRC32 value and Index size. */ -+ index_update(s, b); -+ -+ /* Compare the hashes to validate the Index field. */ -+ if (!memeq(&s->block.hash, &s->index.hash, -+ sizeof(s->block.hash))) -+ return XZ_DATA_ERROR; -+ -+ s->sequence = SEQ_INDEX_CRC32; -+ -+ case SEQ_INDEX_CRC32: -+ ret = crc32_validate(s, b); -+ if (ret != XZ_STREAM_END) -+ return ret; -+ -+ s->temp.size = STREAM_HEADER_SIZE; -+ s->sequence = SEQ_STREAM_FOOTER; -+ -+ case SEQ_STREAM_FOOTER: -+ if (!fill_temp(s, b)) -+ return XZ_OK; -+ -+ return dec_stream_footer(s); -+ } -+ } -+ -+ /* Never reached */ -+} -+ -+/* -+ * xz_dec_run() is a wrapper for dec_main() to handle some special cases in -+ * multi-call and single-call decoding. -+ * -+ * In multi-call mode, we must return XZ_BUF_ERROR when it seems clear that we -+ * are not going to make any progress anymore. This is to prevent the caller -+ * from calling us infinitely when the input file is truncated or otherwise -+ * corrupt. Since zlib-style API allows that the caller fills the input buffer -+ * only when the decoder doesn't produce any new output, we have to be careful -+ * to avoid returning XZ_BUF_ERROR too easily: XZ_BUF_ERROR is returned only -+ * after the second consecutive call to xz_dec_run() that makes no progress. -+ * -+ * In single-call mode, if we couldn't decode everything and no error -+ * occurred, either the input is truncated or the output buffer is too small. -+ * Since we know that the last input byte never produces any output, we know -+ * that if all the input was consumed and decoding wasn't finished, the file -+ * must be corrupt. Otherwise the output buffer has to be too small or the -+ * file is corrupt in a way that decoding it produces too big output. -+ * -+ * If single-call decoding fails, we reset b->in_pos and b->out_pos back to -+ * their original values. This is because with some filter chains there won't -+ * be any valid uncompressed data in the output buffer unless the decoding -+ * actually succeeds (that's the price to pay of using the output buffer as -+ * the workspace). -+ */ -+XZ_EXTERN enum xz_ret xz_dec_run(struct xz_dec *s, struct xz_buf *b) -+{ -+ size_t in_start; -+ size_t out_start; -+ enum xz_ret ret; -+ -+ if (DEC_IS_SINGLE(s->mode)) -+ xz_dec_reset(s); -+ -+ in_start = b->in_pos; -+ out_start = b->out_pos; -+ ret = dec_main(s, b); -+ -+ if (DEC_IS_SINGLE(s->mode)) { -+ if (ret == XZ_OK) -+ ret = b->in_pos == b->in_size -+ ? XZ_DATA_ERROR : XZ_BUF_ERROR; -+ -+ if (ret != XZ_STREAM_END) { -+ b->in_pos = in_start; -+ b->out_pos = out_start; -+ } -+ -+ } else if (ret == XZ_OK && in_start == b->in_pos -+ && out_start == b->out_pos) { -+ if (s->allow_buf_error) -+ ret = XZ_BUF_ERROR; -+ -+ s->allow_buf_error = true; -+ } else { -+ s->allow_buf_error = false; -+ } -+ -+ return ret; -+} -+ -+XZ_EXTERN struct xz_dec *xz_dec_init(enum xz_mode mode, uint32_t dict_max) -+{ -+ struct xz_dec *s = kmalloc(sizeof(*s), GFP_KERNEL); -+ if (s == NULL) -+ return NULL; -+ -+ s->mode = mode; -+ -+#ifdef XZ_DEC_BCJ -+ s->bcj = xz_dec_bcj_create(DEC_IS_SINGLE(mode)); -+ if (s->bcj == NULL) -+ goto error_bcj; -+#endif -+ -+ s->lzma2 = xz_dec_lzma2_create(mode, dict_max); -+ if (s->lzma2 == NULL) -+ goto error_lzma2; -+ -+ xz_dec_reset(s); -+ return s; -+ -+error_lzma2: -+#ifdef XZ_DEC_BCJ -+ xz_dec_bcj_end(s->bcj); -+error_bcj: -+#endif -+ kfree(s); -+ return NULL; -+} -+ -+XZ_EXTERN void xz_dec_reset(struct xz_dec *s) -+{ -+ s->sequence = SEQ_STREAM_HEADER; -+ s->allow_buf_error = false; -+ s->pos = 0; -+ s->crc32 = 0; -+ memzero(&s->block, sizeof(s->block)); -+ memzero(&s->index, sizeof(s->index)); -+ s->temp.pos = 0; -+ s->temp.size = STREAM_HEADER_SIZE; -+} -+ -+XZ_EXTERN void xz_dec_end(struct xz_dec *s) -+{ -+ if (s != NULL) { -+ xz_dec_lzma2_end(s->lzma2); -+#ifdef XZ_DEC_BCJ -+ xz_dec_bcj_end(s->bcj); -+#endif -+ kfree(s); -+ } -+} -diff --git a/lib/xz/xz_dec_syms.c b/lib/xz/xz_dec_syms.c -new file mode 100644 -index 0000000..32eb3c0 ---- /dev/null -+++ b/lib/xz/xz_dec_syms.c -@@ -0,0 +1,26 @@ -+/* -+ * XZ decoder module information -+ * -+ * Author: Lasse Collin -+ * -+ * This file has been put into the public domain. -+ * You can do whatever you want with this file. -+ */ -+ -+#include -+#include -+ -+EXPORT_SYMBOL(xz_dec_init); -+EXPORT_SYMBOL(xz_dec_reset); -+EXPORT_SYMBOL(xz_dec_run); -+EXPORT_SYMBOL(xz_dec_end); -+ -+MODULE_DESCRIPTION("XZ decompressor"); -+MODULE_VERSION("1.0"); -+MODULE_AUTHOR("Lasse Collin and Igor Pavlov"); -+ -+/* -+ * This code is in the public domain, but in Linux it's simplest to just -+ * say it's GPL and consider the authors as the copyright holders. -+ */ -+MODULE_LICENSE("GPL"); -diff --git a/lib/xz/xz_dec_test.c b/lib/xz/xz_dec_test.c -new file mode 100644 -index 0000000..da28a19 ---- /dev/null -+++ b/lib/xz/xz_dec_test.c -@@ -0,0 +1,220 @@ -+/* -+ * XZ decoder tester -+ * -+ * Author: Lasse Collin -+ * -+ * This file has been put into the public domain. -+ * You can do whatever you want with this file. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+/* Maximum supported dictionary size */ -+#define DICT_MAX (1 << 20) -+ -+/* Device name to pass to register_chrdev(). */ -+#define DEVICE_NAME "xz_dec_test" -+ -+/* Dynamically allocated device major number */ -+static int device_major; -+ -+/* -+ * We reuse the same decoder state, and thus can decode only one -+ * file at a time. -+ */ -+static bool device_is_open; -+ -+/* XZ decoder state */ -+static struct xz_dec *state; -+ -+/* -+ * Return value of xz_dec_run(). We need to avoid calling xz_dec_run() after -+ * it has returned XZ_STREAM_END, so we make this static. -+ */ -+static enum xz_ret ret; -+ -+/* -+ * Input and output buffers. The input buffer is used as a temporary safe -+ * place for the data coming from the userspace. -+ */ -+static uint8_t buffer_in[1024]; -+static uint8_t buffer_out[1024]; -+ -+/* -+ * Structure to pass the input and output buffers to the XZ decoder. -+ * A few of the fields are never modified so we initialize them here. -+ */ -+static struct xz_buf buffers = { -+ .in = buffer_in, -+ .out = buffer_out, -+ .out_size = sizeof(buffer_out) -+}; -+ -+/* -+ * CRC32 of uncompressed data. This is used to give the user a simple way -+ * to check that the decoder produces correct output. -+ */ -+static uint32_t crc; -+ -+static int xz_dec_test_open(struct inode *i, struct file *f) -+{ -+ if (device_is_open) -+ return -EBUSY; -+ -+ device_is_open = true; -+ -+ xz_dec_reset(state); -+ ret = XZ_OK; -+ crc = 0xFFFFFFFF; -+ -+ buffers.in_pos = 0; -+ buffers.in_size = 0; -+ buffers.out_pos = 0; -+ -+ printk(KERN_INFO DEVICE_NAME ": opened\n"); -+ return 0; -+} -+ -+static int xz_dec_test_release(struct inode *i, struct file *f) -+{ -+ device_is_open = false; -+ -+ if (ret == XZ_OK) -+ printk(KERN_INFO DEVICE_NAME ": input was truncated\n"); -+ -+ printk(KERN_INFO DEVICE_NAME ": closed\n"); -+ return 0; -+} -+ -+/* -+ * Decode the data given to us from the userspace. CRC32 of the uncompressed -+ * data is calculated and is printed at the end of successful decoding. The -+ * uncompressed data isn't stored anywhere for further use. -+ * -+ * The .xz file must have exactly one Stream and no Stream Padding. The data -+ * after the first Stream is considered to be garbage. -+ */ -+static ssize_t xz_dec_test_write(struct file *file, const char __user *buf, -+ size_t size, loff_t *pos) -+{ -+ size_t remaining; -+ -+ if (ret != XZ_OK) { -+ if (size > 0) -+ printk(KERN_INFO DEVICE_NAME ": %zu bytes of " -+ "garbage at the end of the file\n", -+ size); -+ -+ return -ENOSPC; -+ } -+ -+ printk(KERN_INFO DEVICE_NAME ": decoding %zu bytes of input\n", -+ size); -+ -+ remaining = size; -+ while ((remaining > 0 || buffers.out_pos == buffers.out_size) -+ && ret == XZ_OK) { -+ if (buffers.in_pos == buffers.in_size) { -+ buffers.in_pos = 0; -+ buffers.in_size = min(remaining, sizeof(buffer_in)); -+ if (copy_from_user(buffer_in, buf, buffers.in_size)) -+ return -EFAULT; -+ -+ buf += buffers.in_size; -+ remaining -= buffers.in_size; -+ } -+ -+ buffers.out_pos = 0; -+ ret = xz_dec_run(state, &buffers); -+ crc = crc32(crc, buffer_out, buffers.out_pos); -+ } -+ -+ switch (ret) { -+ case XZ_OK: -+ printk(KERN_INFO DEVICE_NAME ": XZ_OK\n"); -+ return size; -+ -+ case XZ_STREAM_END: -+ printk(KERN_INFO DEVICE_NAME ": XZ_STREAM_END, " -+ "CRC32 = 0x%08X\n", ~crc); -+ return size - remaining - (buffers.in_size - buffers.in_pos); -+ -+ case XZ_MEMLIMIT_ERROR: -+ printk(KERN_INFO DEVICE_NAME ": XZ_MEMLIMIT_ERROR\n"); -+ break; -+ -+ case XZ_FORMAT_ERROR: -+ printk(KERN_INFO DEVICE_NAME ": XZ_FORMAT_ERROR\n"); -+ break; -+ -+ case XZ_OPTIONS_ERROR: -+ printk(KERN_INFO DEVICE_NAME ": XZ_OPTIONS_ERROR\n"); -+ break; -+ -+ case XZ_DATA_ERROR: -+ printk(KERN_INFO DEVICE_NAME ": XZ_DATA_ERROR\n"); -+ break; -+ -+ case XZ_BUF_ERROR: -+ printk(KERN_INFO DEVICE_NAME ": XZ_BUF_ERROR\n"); -+ break; -+ -+ default: -+ printk(KERN_INFO DEVICE_NAME ": Bug detected!\n"); -+ break; -+ } -+ -+ return -EIO; -+} -+ -+/* Allocate the XZ decoder state and register the character device. */ -+static int __init xz_dec_test_init(void) -+{ -+ static const struct file_operations fileops = { -+ .owner = THIS_MODULE, -+ .open = &xz_dec_test_open, -+ .release = &xz_dec_test_release, -+ .write = &xz_dec_test_write -+ }; -+ -+ state = xz_dec_init(XZ_PREALLOC, DICT_MAX); -+ if (state == NULL) -+ return -ENOMEM; -+ -+ device_major = register_chrdev(0, DEVICE_NAME, &fileops); -+ if (device_major < 0) { -+ xz_dec_end(state); -+ return device_major; -+ } -+ -+ printk(KERN_INFO DEVICE_NAME ": module loaded\n"); -+ printk(KERN_INFO DEVICE_NAME ": Create a device node with " -+ "'mknod " DEVICE_NAME " c %d 0' and write .xz files " -+ "to it.\n", device_major); -+ return 0; -+} -+ -+static void __exit xz_dec_test_exit(void) -+{ -+ unregister_chrdev(device_major, DEVICE_NAME); -+ xz_dec_end(state); -+ printk(KERN_INFO DEVICE_NAME ": module unloaded\n"); -+} -+ -+module_init(xz_dec_test_init); -+module_exit(xz_dec_test_exit); -+ -+MODULE_DESCRIPTION("XZ decompressor tester"); -+MODULE_VERSION("1.0"); -+MODULE_AUTHOR("Lasse Collin "); -+ -+/* -+ * This code is in the public domain, but in Linux it's simplest to just -+ * say it's GPL and consider the authors as the copyright holders. -+ */ -+MODULE_LICENSE("GPL"); -diff --git a/lib/xz/xz_lzma2.h b/lib/xz/xz_lzma2.h -new file mode 100644 -index 0000000..071d67b ---- /dev/null -+++ b/lib/xz/xz_lzma2.h -@@ -0,0 +1,204 @@ -+/* -+ * LZMA2 definitions -+ * -+ * Authors: Lasse Collin -+ * Igor Pavlov -+ * -+ * This file has been put into the public domain. -+ * You can do whatever you want with this file. -+ */ -+ -+#ifndef XZ_LZMA2_H -+#define XZ_LZMA2_H -+ -+/* Range coder constants */ -+#define RC_SHIFT_BITS 8 -+#define RC_TOP_BITS 24 -+#define RC_TOP_VALUE (1 << RC_TOP_BITS) -+#define RC_BIT_MODEL_TOTAL_BITS 11 -+#define RC_BIT_MODEL_TOTAL (1 << RC_BIT_MODEL_TOTAL_BITS) -+#define RC_MOVE_BITS 5 -+ -+/* -+ * Maximum number of position states. A position state is the lowest pb -+ * number of bits of the current uncompressed offset. In some places there -+ * are different sets of probabilities for different position states. -+ */ -+#define POS_STATES_MAX (1 << 4) -+ -+/* -+ * This enum is used to track which LZMA symbols have occurred most recently -+ * and in which order. This information is used to predict the next symbol. -+ * -+ * Symbols: -+ * - Literal: One 8-bit byte -+ * - Match: Repeat a chunk of data at some distance -+ * - Long repeat: Multi-byte match at a recently seen distance -+ * - Short repeat: One-byte repeat at a recently seen distance -+ * -+ * The symbol names are in from STATE_oldest_older_previous. REP means -+ * either short or long repeated match, and NONLIT means any non-literal. -+ */ -+enum lzma_state { -+ STATE_LIT_LIT, -+ STATE_MATCH_LIT_LIT, -+ STATE_REP_LIT_LIT, -+ STATE_SHORTREP_LIT_LIT, -+ STATE_MATCH_LIT, -+ STATE_REP_LIT, -+ STATE_SHORTREP_LIT, -+ STATE_LIT_MATCH, -+ STATE_LIT_LONGREP, -+ STATE_LIT_SHORTREP, -+ STATE_NONLIT_MATCH, -+ STATE_NONLIT_REP -+}; -+ -+/* Total number of states */ -+#define STATES 12 -+ -+/* The lowest 7 states indicate that the previous state was a literal. */ -+#define LIT_STATES 7 -+ -+/* Indicate that the latest symbol was a literal. */ -+static inline void lzma_state_literal(enum lzma_state *state) -+{ -+ if (*state <= STATE_SHORTREP_LIT_LIT) -+ *state = STATE_LIT_LIT; -+ else if (*state <= STATE_LIT_SHORTREP) -+ *state -= 3; -+ else -+ *state -= 6; -+} -+ -+/* Indicate that the latest symbol was a match. */ -+static inline void lzma_state_match(enum lzma_state *state) -+{ -+ *state = *state < LIT_STATES ? STATE_LIT_MATCH : STATE_NONLIT_MATCH; -+} -+ -+/* Indicate that the latest state was a long repeated match. */ -+static inline void lzma_state_long_rep(enum lzma_state *state) -+{ -+ *state = *state < LIT_STATES ? STATE_LIT_LONGREP : STATE_NONLIT_REP; -+} -+ -+/* Indicate that the latest symbol was a short match. */ -+static inline void lzma_state_short_rep(enum lzma_state *state) -+{ -+ *state = *state < LIT_STATES ? STATE_LIT_SHORTREP : STATE_NONLIT_REP; -+} -+ -+/* Test if the previous symbol was a literal. */ -+static inline bool lzma_state_is_literal(enum lzma_state state) -+{ -+ return state < LIT_STATES; -+} -+ -+/* Each literal coder is divided in three sections: -+ * - 0x001-0x0FF: Without match byte -+ * - 0x101-0x1FF: With match byte; match bit is 0 -+ * - 0x201-0x2FF: With match byte; match bit is 1 -+ * -+ * Match byte is used when the previous LZMA symbol was something else than -+ * a literal (that is, it was some kind of match). -+ */ -+#define LITERAL_CODER_SIZE 0x300 -+ -+/* Maximum number of literal coders */ -+#define LITERAL_CODERS_MAX (1 << 4) -+ -+/* Minimum length of a match is two bytes. */ -+#define MATCH_LEN_MIN 2 -+ -+/* Match length is encoded with 4, 5, or 10 bits. -+ * -+ * Length Bits -+ * 2-9 4 = Choice=0 + 3 bits -+ * 10-17 5 = Choice=1 + Choice2=0 + 3 bits -+ * 18-273 10 = Choice=1 + Choice2=1 + 8 bits -+ */ -+#define LEN_LOW_BITS 3 -+#define LEN_LOW_SYMBOLS (1 << LEN_LOW_BITS) -+#define LEN_MID_BITS 3 -+#define LEN_MID_SYMBOLS (1 << LEN_MID_BITS) -+#define LEN_HIGH_BITS 8 -+#define LEN_HIGH_SYMBOLS (1 << LEN_HIGH_BITS) -+#define LEN_SYMBOLS (LEN_LOW_SYMBOLS + LEN_MID_SYMBOLS + LEN_HIGH_SYMBOLS) -+ -+/* -+ * Maximum length of a match is 273 which is a result of the encoding -+ * described above. -+ */ -+#define MATCH_LEN_MAX (MATCH_LEN_MIN + LEN_SYMBOLS - 1) -+ -+/* -+ * Different sets of probabilities are used for match distances that have -+ * very short match length: Lengths of 2, 3, and 4 bytes have a separate -+ * set of probabilities for each length. The matches with longer length -+ * use a shared set of probabilities. -+ */ -+#define DIST_STATES 4 -+ -+/* -+ * Get the index of the appropriate probability array for decoding -+ * the distance slot. -+ */ -+static inline uint32_t lzma_get_dist_state(uint32_t len) -+{ -+ return len < DIST_STATES + MATCH_LEN_MIN -+ ? len - MATCH_LEN_MIN : DIST_STATES - 1; -+} -+ -+/* -+ * The highest two bits of a 32-bit match distance are encoded using six bits. -+ * This six-bit value is called a distance slot. This way encoding a 32-bit -+ * value takes 6-36 bits, larger values taking more bits. -+ */ -+#define DIST_SLOT_BITS 6 -+#define DIST_SLOTS (1 << DIST_SLOT_BITS) -+ -+/* Match distances up to 127 are fully encoded using probabilities. Since -+ * the highest two bits (distance slot) are always encoded using six bits, -+ * the distances 0-3 don't need any additional bits to encode, since the -+ * distance slot itself is the same as the actual distance. DIST_MODEL_START -+ * indicates the first distance slot where at least one additional bit is -+ * needed. -+ */ -+#define DIST_MODEL_START 4 -+ -+/* -+ * Match distances greater than 127 are encoded in three pieces: -+ * - distance slot: the highest two bits -+ * - direct bits: 2-26 bits below the highest two bits -+ * - alignment bits: four lowest bits -+ * -+ * Direct bits don't use any probabilities. -+ * -+ * The distance slot value of 14 is for distances 128-191. -+ */ -+#define DIST_MODEL_END 14 -+ -+/* Distance slots that indicate a distance <= 127. */ -+#define FULL_DISTANCES_BITS (DIST_MODEL_END / 2) -+#define FULL_DISTANCES (1 << FULL_DISTANCES_BITS) -+ -+/* -+ * For match distances greater than 127, only the highest two bits and the -+ * lowest four bits (alignment) is encoded using probabilities. -+ */ -+#define ALIGN_BITS 4 -+#define ALIGN_SIZE (1 << ALIGN_BITS) -+#define ALIGN_MASK (ALIGN_SIZE - 1) -+ -+/* Total number of all probability variables */ -+#define PROBS_TOTAL (1846 + LITERAL_CODERS_MAX * LITERAL_CODER_SIZE) -+ -+/* -+ * LZMA remembers the four most recent match distances. Reusing these -+ * distances tends to take less space than re-encoding the actual -+ * distance value. -+ */ -+#define REPS 4 -+ -+#endif -diff --git a/lib/xz/xz_private.h b/lib/xz/xz_private.h -new file mode 100644 -index 0000000..a65633e ---- /dev/null -+++ b/lib/xz/xz_private.h -@@ -0,0 +1,156 @@ -+/* -+ * Private includes and definitions -+ * -+ * Author: Lasse Collin -+ * -+ * This file has been put into the public domain. -+ * You can do whatever you want with this file. -+ */ -+ -+#ifndef XZ_PRIVATE_H -+#define XZ_PRIVATE_H -+ -+#ifdef __KERNEL__ -+# include -+# include -+# include -+ /* XZ_PREBOOT may be defined only via decompress_unxz.c. */ -+# ifndef XZ_PREBOOT -+# include -+# include -+# include -+# ifdef CONFIG_XZ_DEC_X86 -+# define XZ_DEC_X86 -+# endif -+# ifdef CONFIG_XZ_DEC_POWERPC -+# define XZ_DEC_POWERPC -+# endif -+# ifdef CONFIG_XZ_DEC_IA64 -+# define XZ_DEC_IA64 -+# endif -+# ifdef CONFIG_XZ_DEC_ARM -+# define XZ_DEC_ARM -+# endif -+# ifdef CONFIG_XZ_DEC_ARMTHUMB -+# define XZ_DEC_ARMTHUMB -+# endif -+# ifdef CONFIG_XZ_DEC_SPARC -+# define XZ_DEC_SPARC -+# endif -+# define memeq(a, b, size) (memcmp(a, b, size) == 0) -+# define memzero(buf, size) memset(buf, 0, size) -+# endif -+# define get_le32(p) le32_to_cpup((const uint32_t *)(p)) -+#else -+ /* -+ * For userspace builds, use a separate header to define the required -+ * macros and functions. This makes it easier to adapt the code into -+ * different environments and avoids clutter in the Linux kernel tree. -+ */ -+# include "xz_config.h" -+#endif -+ -+/* If no specific decoding mode is requested, enable support for all modes. */ -+#if !defined(XZ_DEC_SINGLE) && !defined(XZ_DEC_PREALLOC) \ -+ && !defined(XZ_DEC_DYNALLOC) -+# define XZ_DEC_SINGLE -+# define XZ_DEC_PREALLOC -+# define XZ_DEC_DYNALLOC -+#endif -+ -+/* -+ * The DEC_IS_foo(mode) macros are used in "if" statements. If only some -+ * of the supported modes are enabled, these macros will evaluate to true or -+ * false at compile time and thus allow the compiler to omit unneeded code. -+ */ -+#ifdef XZ_DEC_SINGLE -+# define DEC_IS_SINGLE(mode) ((mode) == XZ_SINGLE) -+#else -+# define DEC_IS_SINGLE(mode) (false) -+#endif -+ -+#ifdef XZ_DEC_PREALLOC -+# define DEC_IS_PREALLOC(mode) ((mode) == XZ_PREALLOC) -+#else -+# define DEC_IS_PREALLOC(mode) (false) -+#endif -+ -+#ifdef XZ_DEC_DYNALLOC -+# define DEC_IS_DYNALLOC(mode) ((mode) == XZ_DYNALLOC) -+#else -+# define DEC_IS_DYNALLOC(mode) (false) -+#endif -+ -+#if !defined(XZ_DEC_SINGLE) -+# define DEC_IS_MULTI(mode) (true) -+#elif defined(XZ_DEC_PREALLOC) || defined(XZ_DEC_DYNALLOC) -+# define DEC_IS_MULTI(mode) ((mode) != XZ_SINGLE) -+#else -+# define DEC_IS_MULTI(mode) (false) -+#endif -+ -+/* -+ * If any of the BCJ filter decoders are wanted, define XZ_DEC_BCJ. -+ * XZ_DEC_BCJ is used to enable generic support for BCJ decoders. -+ */ -+#ifndef XZ_DEC_BCJ -+# if defined(XZ_DEC_X86) || defined(XZ_DEC_POWERPC) \ -+ || defined(XZ_DEC_IA64) || defined(XZ_DEC_ARM) \ -+ || defined(XZ_DEC_ARM) || defined(XZ_DEC_ARMTHUMB) \ -+ || defined(XZ_DEC_SPARC) -+# define XZ_DEC_BCJ -+# endif -+#endif -+ -+/* -+ * Allocate memory for LZMA2 decoder. xz_dec_lzma2_reset() must be used -+ * before calling xz_dec_lzma2_run(). -+ */ -+XZ_EXTERN struct xz_dec_lzma2 *xz_dec_lzma2_create(enum xz_mode mode, -+ uint32_t dict_max); -+ -+/* -+ * Decode the LZMA2 properties (one byte) and reset the decoder. Return -+ * XZ_OK on success, XZ_MEMLIMIT_ERROR if the preallocated dictionary is not -+ * big enough, and XZ_OPTIONS_ERROR if props indicates something that this -+ * decoder doesn't support. -+ */ -+XZ_EXTERN enum xz_ret xz_dec_lzma2_reset(struct xz_dec_lzma2 *s, -+ uint8_t props); -+ -+/* Decode raw LZMA2 stream from b->in to b->out. */ -+XZ_EXTERN enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s, -+ struct xz_buf *b); -+ -+/* Free the memory allocated for the LZMA2 decoder. */ -+XZ_EXTERN void xz_dec_lzma2_end(struct xz_dec_lzma2 *s); -+ -+#ifdef XZ_DEC_BCJ -+/* -+ * Allocate memory for BCJ decoders. xz_dec_bcj_reset() must be used before -+ * calling xz_dec_bcj_run(). -+ */ -+XZ_EXTERN struct xz_dec_bcj *xz_dec_bcj_create(bool single_call); -+ -+/* -+ * Decode the Filter ID of a BCJ filter. This implementation doesn't -+ * support custom start offsets, so no decoding of Filter Properties -+ * is needed. Returns XZ_OK if the given Filter ID is supported. -+ * Otherwise XZ_OPTIONS_ERROR is returned. -+ */ -+XZ_EXTERN enum xz_ret xz_dec_bcj_reset(struct xz_dec_bcj *s, uint8_t id); -+ -+/* -+ * Decode raw BCJ + LZMA2 stream. This must be used only if there actually is -+ * a BCJ filter in the chain. If the chain has only LZMA2, xz_dec_lzma2_run() -+ * must be called directly. -+ */ -+XZ_EXTERN enum xz_ret xz_dec_bcj_run(struct xz_dec_bcj *s, -+ struct xz_dec_lzma2 *lzma2, -+ struct xz_buf *b); -+ -+/* Free the memory allocated for the BCJ filters. */ -+#define xz_dec_bcj_end(s) kfree(s) -+#endif -+ -+#endif -diff --git a/lib/xz/xz_stream.h b/lib/xz/xz_stream.h -new file mode 100644 -index 0000000..66cb5a7 ---- /dev/null -+++ b/lib/xz/xz_stream.h -@@ -0,0 +1,62 @@ -+/* -+ * Definitions for handling the .xz file format -+ * -+ * Author: Lasse Collin -+ * -+ * This file has been put into the public domain. -+ * You can do whatever you want with this file. -+ */ -+ -+#ifndef XZ_STREAM_H -+#define XZ_STREAM_H -+ -+#if defined(__KERNEL__) && !XZ_INTERNAL_CRC32 -+# include -+# undef crc32 -+# define xz_crc32(buf, size, crc) \ -+ (~crc32_le(~(uint32_t)(crc), buf, size)) -+#endif -+ -+/* -+ * See the .xz file format specification at -+ * http://tukaani.org/xz/xz-file-format.txt -+ * to understand the container format. -+ */ -+ -+#define STREAM_HEADER_SIZE 12 -+ -+#define HEADER_MAGIC "\3757zXZ" -+#define HEADER_MAGIC_SIZE 6 -+ -+#define FOOTER_MAGIC "YZ" -+#define FOOTER_MAGIC_SIZE 2 -+ -+/* -+ * Variable-length integer can hold a 63-bit unsigned integer or a special -+ * value indicating that the value is unknown. -+ * -+ * Experimental: vli_type can be defined to uint32_t to save a few bytes -+ * in code size (no effect on speed). Doing so limits the uncompressed and -+ * compressed size of the file to less than 256 MiB and may also weaken -+ * error detection slightly. -+ */ -+typedef uint64_t vli_type; -+ -+#define VLI_MAX ((vli_type)-1 / 2) -+#define VLI_UNKNOWN ((vli_type)-1) -+ -+/* Maximum encoded size of a VLI */ -+#define VLI_BYTES_MAX (sizeof(vli_type) * 8 / 7) -+ -+/* Integrity Check types */ -+enum xz_check { -+ XZ_CHECK_NONE = 0, -+ XZ_CHECK_CRC32 = 1, -+ XZ_CHECK_CRC64 = 4, -+ XZ_CHECK_SHA256 = 10 -+}; -+ -+/* Maximum possible Check ID */ -+#define XZ_CHECK_MAX 15 -+ -+#endif -diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib -index 54fd1b7..b862007 100644 ---- a/scripts/Makefile.lib -+++ b/scripts/Makefile.lib -@@ -246,6 +246,34 @@ cmd_lzo = (cat $(filter-out FORCE,$^) | \ - lzop -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ - (rm -f $@ ; false) - -+# XZ -+# --------------------------------------------------------------------------- -+# Use xzkern to compress the kernel image and xzmisc to compress other things. -+# -+# xzkern uses a big LZMA2 dictionary since it doesn't increase memory usage -+# of the kernel decompressor. A BCJ filter is used if it is available for -+# the target architecture. xzkern also appends uncompressed size of the data -+# using size_append. The .xz format has the size information available at -+# the end of the file too, but it's in more complex format and it's good to -+# avoid changing the part of the boot code that reads the uncompressed size. -+# Note that the bytes added by size_append will make the xz tool think that -+# the file is corrupt. This is expected. -+# -+# xzmisc doesn't use size_append, so it can be used to create normal .xz -+# files. xzmisc uses smaller LZMA2 dictionary than xzkern, because a very -+# big dictionary would increase the memory usage too much in the multi-call -+# decompression mode. A BCJ filter isn't used either. -+quiet_cmd_xzkern = XZKERN $@ -+cmd_xzkern = (cat $(filter-out FORCE,$^) | \ -+ sh $(srctree)/scripts/xz_wrap.sh && \ -+ $(call size_append, $(filter-out FORCE,$^))) > $@ || \ -+ (rm -f $@ ; false) -+ -+quiet_cmd_xzmisc = XZMISC $@ -+cmd_xzmisc = (cat $(filter-out FORCE,$^) | \ -+ xz --check=crc32 --lzma2=dict=1MiB) > $@ || \ -+ (rm -f $@ ; false) -+ - # misc stuff - # --------------------------------------------------------------------------- - quote:=" -diff --git a/scripts/xz_wrap.sh b/scripts/xz_wrap.sh -new file mode 100644 -index 0000000..17a5798 ---- /dev/null -+++ b/scripts/xz_wrap.sh -@@ -0,0 +1,23 @@ -+#!/bin/sh -+# -+# This is a wrapper for xz to compress the kernel image using appropriate -+# compression options depending on the architecture. -+# -+# Author: Lasse Collin -+# -+# This file has been put into the public domain. -+# You can do whatever you want with this file. -+# -+ -+BCJ= -+LZMA2OPTS= -+ -+case $ARCH in -+ x86|x86_64) BCJ=--x86 ;; -+ powerpc) BCJ=--powerpc ;; -+ ia64) BCJ=--ia64; LZMA2OPTS=pb=4 ;; -+ arm) BCJ=--arm ;; -+ sparc) BCJ=--sparc ;; -+esac -+ -+exec xz --check=crc32 $BCJ --lzma2=$LZMA2OPTS,dict=32MiB diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/002-squashfs-decompressors-add-boot-time-xz-support.patch --- a/kernel-modular/stuff/002-squashfs-decompressors-add-boot-time-xz-support.patch Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,638 +0,0 @@ -From: Lasse Collin -Date: Thu, 2 Dec 2010 19:14:37 +0000 (+0200) -Subject: Decompressors: Add boot-time XZ support -X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fpkl%2Fsquashfs-xz.git;a=commitdiff_plain;h=c64bc9a229b46db75d7761601dd8ca25385a7780 - -Decompressors: Add boot-time XZ support - -This implements the API defined in -which is used for kernel, initramfs, and initrd decompression. -This patch together with the first patch is enough for -XZ-compressed initramfs and initrd; XZ-compressed kernel will -need arch-specific changes. - -In contrast to other initramfs compression methods, support for -XZ-compressed initramfs is not enabled by default in usr/Kconfig. -This is primarily due to the Kconfig options of the xz_dec -module. It can be good to require that xz_dec is enabled -separately so the user can select only the BCJ filters he needs -when EMBEDDED=y. - -The buffering requirements described in decompress_unxz.c are -stricter than with gzip, so the relevant changes should be done -to the arch-specific code when adding support for XZ-compressed -kernel. Similarly, the heap size in arch-specific pre-boot code -may need to be increased (30 KiB is enough). - -The XZ decompressor needs memmove(), memeq() (memcmp() == 0), -and memzero() (memset(ptr, 0, size)), which aren't available in -all arch-specific pre-boot environments. I'm including simple -versions in decompress_unxz.c, but a cleaner solution would -naturally be nicer. - -Signed-off-by: Lasse Collin ---- - -diff --git a/include/linux/decompress/unxz.h b/include/linux/decompress/unxz.h -new file mode 100644 -index 0000000..41728fc ---- /dev/null -+++ b/include/linux/decompress/unxz.h -@@ -0,0 +1,19 @@ -+/* -+ * Wrapper for decompressing XZ-compressed kernel, initramfs, and initrd -+ * -+ * Author: Lasse Collin -+ * -+ * This file has been put into the public domain. -+ * You can do whatever you want with this file. -+ */ -+ -+#ifndef DECOMPRESS_UNXZ_H -+#define DECOMPRESS_UNXZ_H -+ -+int unxz(unsigned char *in, int in_size, -+ int (*fill)(void *dest, unsigned int size), -+ int (*flush)(void *src, unsigned int size), -+ unsigned char *out, int *in_used, -+ void (*error)(char *x)); -+ -+#endif -diff --git a/init/Kconfig b/init/Kconfig -index 2de5b1c..d9fbb0f 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -123,13 +123,16 @@ config HAVE_KERNEL_BZIP2 - config HAVE_KERNEL_LZMA - bool - -+config HAVE_KERNEL_XZ -+ bool -+ - config HAVE_KERNEL_LZO - bool - - choice - prompt "Kernel compression mode" - default KERNEL_GZIP -- depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_LZO -+ depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO - help - The linux kernel is a kind of self-extracting executable. - Several compression algorithms are available, which differ -@@ -174,6 +177,21 @@ config KERNEL_LZMA - two. Compression is slowest. The kernel size is about 33% - smaller with LZMA in comparison to gzip. - -+config KERNEL_XZ -+ bool "XZ" -+ depends on HAVE_KERNEL_XZ -+ help -+ XZ uses the LZMA2 algorithm and instruction set specific -+ BCJ filters which can improve compression ratio of executable -+ code. The size of the kernel is about 30% smaller with XZ in -+ comparison to gzip. On architectures for which there is a BCJ -+ filter (i386, x86_64, ARM, IA-64, PowerPC, and SPARC), XZ -+ will create a few percent smaller kernel than plain LZMA. -+ -+ The speed is about the same as with LZMA: The decompression -+ speed of XZ is better than that of bzip2 but worse than gzip -+ and LZO. Compression is slow. -+ - config KERNEL_LZO - bool "LZO" - depends on HAVE_KERNEL_LZO -diff --git a/lib/Kconfig b/lib/Kconfig -index 6090314..45960e1 100644 ---- a/lib/Kconfig -+++ b/lib/Kconfig -@@ -122,6 +122,9 @@ config DECOMPRESS_BZIP2 - config DECOMPRESS_LZMA - tristate - -+config DECOMPRESS_XZ -+ tristate -+ - config DECOMPRESS_LZO - select LZO_DECOMPRESS - tristate -diff --git a/lib/Makefile b/lib/Makefile -index f2f98dd..06e3d8a 100644 ---- a/lib/Makefile -+++ b/lib/Makefile -@@ -75,6 +75,7 @@ obj-$(CONFIG_RAID6_PQ) += raid6/ - lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o - lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o - lib-$(CONFIG_DECOMPRESS_LZMA) += decompress_unlzma.o -+lib-$(CONFIG_DECOMPRESS_XZ) += decompress_unxz.o - lib-$(CONFIG_DECOMPRESS_LZO) += decompress_unlzo.o - - obj-$(CONFIG_TEXTSEARCH) += textsearch.o -diff --git a/lib/decompress.c b/lib/decompress.c -index a760681..3d766b7 100644 ---- a/lib/decompress.c -+++ b/lib/decompress.c -@@ -8,6 +8,7 @@ - - #include - #include -+#include - #include - #include - -@@ -23,6 +24,9 @@ - #ifndef CONFIG_DECOMPRESS_LZMA - # define unlzma NULL - #endif -+#ifndef CONFIG_DECOMPRESS_XZ -+# define unxz NULL -+#endif - #ifndef CONFIG_DECOMPRESS_LZO - # define unlzo NULL - #endif -@@ -36,6 +40,7 @@ static const struct compress_format { - { {037, 0236}, "gzip", gunzip }, - { {0x42, 0x5a}, "bzip2", bunzip2 }, - { {0x5d, 0x00}, "lzma", unlzma }, -+ { {0xfd, 0x37}, "xz", unxz }, - { {0x89, 0x4c}, "lzo", unlzo }, - { {0, 0}, NULL, NULL } - }; -diff --git a/lib/decompress_unxz.c b/lib/decompress_unxz.c -new file mode 100644 -index 0000000..cecd23d ---- /dev/null -+++ b/lib/decompress_unxz.c -@@ -0,0 +1,397 @@ -+/* -+ * Wrapper for decompressing XZ-compressed kernel, initramfs, and initrd -+ * -+ * Author: Lasse Collin -+ * -+ * This file has been put into the public domain. -+ * You can do whatever you want with this file. -+ */ -+ -+/* -+ * Important notes about in-place decompression -+ * -+ * At least on x86, the kernel is decompressed in place: the compressed data -+ * is placed to the end of the output buffer, and the decompressor overwrites -+ * most of the compressed data. There must be enough safety margin to -+ * guarantee that the write position is always behind the read position. -+ * -+ * The safety margin for XZ with LZMA2 or BCJ+LZMA2 is calculated below. -+ * Note that the margin with XZ is bigger than with Deflate (gzip)! -+ * -+ * The worst case for in-place decompression is that the beginning of -+ * the file is compressed extremely well, and the rest of the file is -+ * uncompressible. Thus, we must look for worst-case expansion when the -+ * compressor is encoding uncompressible data. -+ * -+ * The structure of the .xz file in case of a compresed kernel is as follows. -+ * Sizes (as bytes) of the fields are in parenthesis. -+ * -+ * Stream Header (12) -+ * Block Header: -+ * Block Header (8-12) -+ * Compressed Data (N) -+ * Block Padding (0-3) -+ * CRC32 (4) -+ * Index (8-20) -+ * Stream Footer (12) -+ * -+ * Normally there is exactly one Block, but let's assume that there are -+ * 2-4 Blocks just in case. Because Stream Header and also Block Header -+ * of the first Block don't make the decompressor produce any uncompressed -+ * data, we can ignore them from our calculations. Block Headers of possible -+ * additional Blocks have to be taken into account still. With these -+ * assumptions, it is safe to assume that the total header overhead is -+ * less than 128 bytes. -+ * -+ * Compressed Data contains LZMA2 or BCJ+LZMA2 encoded data. Since BCJ -+ * doesn't change the size of the data, it is enough to calculate the -+ * safety margin for LZMA2. -+ * -+ * LZMA2 stores the data in chunks. Each chunk has a header whose size is -+ * a maximum of 6 bytes, but to get round 2^n numbers, let's assume that -+ * the maximum chunk header size is 8 bytes. After the chunk header, there -+ * may be up to 64 KiB of actual payload in the chunk. Often the payload is -+ * quite a bit smaller though; to be safe, let's assume that an average -+ * chunk has only 32 KiB of payload. -+ * -+ * The maximum uncompressed size of the payload is 2 MiB. The minimum -+ * uncompressed size of the payload is in practice never less than the -+ * payload size itself. The LZMA2 format would allow uncompressed size -+ * to be less than the payload size, but no sane compressor creates such -+ * files. LZMA2 supports storing uncompressible data in uncompressed form, -+ * so there's never a need to create payloads whose uncompressed size is -+ * smaller than the compressed size. -+ * -+ * The assumption, that the uncompressed size of the payload is never -+ * smaller than the payload itself, is valid only when talking about -+ * the payload as a whole. It is possible that the payload has parts where -+ * the decompressor consumes more input than it produces output. Calculating -+ * the worst case for this would be tricky. Instead of trying to do that, -+ * let's simply make sure that the decompressor never overwrites any bytes -+ * of the payload which it is currently reading. -+ * -+ * Now we have enough information to calculate the safety margin. We need -+ * - 128 bytes for the .xz file format headers; -+ * - 8 bytes per every 32 KiB of uncompressed size (one LZMA2 chunk header -+ * per chunk, each chunk having average payload size of 32 KiB); and -+ * - 64 KiB (biggest possible LZMA2 chunk payload size) to make sure that -+ * the decompressor never overwrites anything from the LZMA2 chunk -+ * payload it is currently reading. -+ * -+ * We get the following formula: -+ * -+ * safety_margin = 128 + uncompressed_size * 8 / 32768 + 65536 -+ * = 128 + (uncompressed_size >> 12) + 65536 -+ * -+ * For comparision, according to arch/x86/boot/compressed/misc.c, the -+ * equivalent formula for Deflate is this: -+ * -+ * safety_margin = 18 + (uncompressed_size >> 12) + 32768 -+ * -+ * Thus, when updating Deflate-only in-place kernel decompressor to -+ * support XZ, the fixed overhead has to be increased from 18+32768 bytes -+ * to 128+65536 bytes. -+ */ -+ -+/* -+ * STATIC is defined to "static" if we are being built for kernel -+ * decompression (pre-boot code). will define -+ * STATIC to empty if it wasn't already defined. Since we will need to -+ * know later if we are being used for kernel decompression, we define -+ * XZ_PREBOOT here. -+ */ -+#ifdef STATIC -+# define XZ_PREBOOT -+#endif -+#ifdef __KERNEL__ -+# include -+#endif -+#define XZ_EXTERN STATIC -+ -+#ifndef XZ_PREBOOT -+# include -+# include -+#else -+/* -+ * Use the internal CRC32 code instead of kernel's CRC32 module, which -+ * is not available in early phase of booting. -+ */ -+#define XZ_INTERNAL_CRC32 1 -+ -+/* -+ * For boot time use, we enable only the BCJ filter of the current -+ * architecture or none if no BCJ filter is available for the architecture. -+ */ -+#ifdef CONFIG_X86 -+# define XZ_DEC_X86 -+#endif -+#ifdef CONFIG_PPC -+# define XZ_DEC_POWERPC -+#endif -+#ifdef CONFIG_ARM -+# define XZ_DEC_ARM -+#endif -+#ifdef CONFIG_IA64 -+# define XZ_DEC_IA64 -+#endif -+#ifdef CONFIG_SPARC -+# define XZ_DEC_SPARC -+#endif -+ -+/* -+ * This will get the basic headers so that memeq() and others -+ * can be defined. -+ */ -+#include "xz/xz_private.h" -+ -+/* -+ * Replace the normal allocation functions with the versions from -+ * . vfree() needs to support vfree(NULL) -+ * when XZ_DYNALLOC is used, but the pre-boot free() doesn't support it. -+ * Workaround it here because the other decompressors don't need it. -+ */ -+#undef kmalloc -+#undef kfree -+#undef vmalloc -+#undef vfree -+#define kmalloc(size, flags) malloc(size) -+#define kfree(ptr) free(ptr) -+#define vmalloc(size) malloc(size) -+#define vfree(ptr) do { if (ptr != NULL) free(ptr); } while (0) -+ -+/* -+ * FIXME: Not all basic memory functions are provided in architecture-specific -+ * files (yet). We define our own versions here for now, but this should be -+ * only a temporary solution. -+ * -+ * memeq and memzero are not used much and any remotely sane implementation -+ * is fast enough. memcpy/memmove speed matters in multi-call mode, but -+ * the kernel image is decompressed in single-call mode, in which only -+ * memcpy speed can matter and only if there is a lot of uncompressible data -+ * (LZMA2 stores uncompressible chunks in uncompressed form). Thus, the -+ * functions below should just be kept small; it's probably not worth -+ * optimizing for speed. -+ */ -+ -+#ifndef memeq -+static bool memeq(const void *a, const void *b, size_t size) -+{ -+ const uint8_t *x = a; -+ const uint8_t *y = b; -+ size_t i; -+ -+ for (i = 0; i < size; ++i) -+ if (x[i] != y[i]) -+ return false; -+ -+ return true; -+} -+#endif -+ -+#ifndef memzero -+static void memzero(void *buf, size_t size) -+{ -+ uint8_t *b = buf; -+ uint8_t *e = b + size; -+ -+ while (b != e) -+ *b++ = '\0'; -+} -+#endif -+ -+#ifndef memmove -+/* Not static to avoid a conflict with the prototype in the Linux headers. */ -+void *memmove(void *dest, const void *src, size_t size) -+{ -+ uint8_t *d = dest; -+ const uint8_t *s = src; -+ size_t i; -+ -+ if (d < s) { -+ for (i = 0; i < size; ++i) -+ d[i] = s[i]; -+ } else if (d > s) { -+ i = size; -+ while (i-- > 0) -+ d[i] = s[i]; -+ } -+ -+ return dest; -+} -+#endif -+ -+/* -+ * Since we need memmove anyway, would use it as memcpy too. -+ * Commented out for now to avoid breaking things. -+ */ -+/* -+#ifndef memcpy -+# define memcpy memmove -+#endif -+*/ -+ -+#include "xz/xz_crc32.c" -+#include "xz/xz_dec_stream.c" -+#include "xz/xz_dec_lzma2.c" -+#include "xz/xz_dec_bcj.c" -+ -+#endif /* XZ_PREBOOT */ -+ -+/* Size of the input and output buffers in multi-call mode */ -+#define XZ_IOBUF_SIZE 4096 -+ -+/* -+ * This function implements the API defined in . -+ * -+ * This wrapper will automatically choose single-call or multi-call mode -+ * of the native XZ decoder API. The single-call mode can be used only when -+ * both input and output buffers are available as a single chunk, i.e. when -+ * fill() and flush() won't be used. -+ */ -+STATIC int INIT unxz(unsigned char *in, int in_size, -+ int (*fill)(void *dest, unsigned int size), -+ int (*flush)(void *src, unsigned int size), -+ unsigned char *out, int *in_used, -+ void (*error)(char *x)) -+{ -+ struct xz_buf b; -+ struct xz_dec *s; -+ enum xz_ret ret; -+ bool must_free_in = false; -+ -+#if XZ_INTERNAL_CRC32 -+ xz_crc32_init(); -+#endif -+ -+ if (in_used != NULL) -+ *in_used = 0; -+ -+ if (fill == NULL && flush == NULL) -+ s = xz_dec_init(XZ_SINGLE, 0); -+ else -+ s = xz_dec_init(XZ_DYNALLOC, (uint32_t)-1); -+ -+ if (s == NULL) -+ goto error_alloc_state; -+ -+ if (flush == NULL) { -+ b.out = out; -+ b.out_size = (size_t)-1; -+ } else { -+ b.out_size = XZ_IOBUF_SIZE; -+ b.out = malloc(XZ_IOBUF_SIZE); -+ if (b.out == NULL) -+ goto error_alloc_out; -+ } -+ -+ if (in == NULL) { -+ must_free_in = true; -+ in = malloc(XZ_IOBUF_SIZE); -+ if (in == NULL) -+ goto error_alloc_in; -+ } -+ -+ b.in = in; -+ b.in_pos = 0; -+ b.in_size = in_size; -+ b.out_pos = 0; -+ -+ if (fill == NULL && flush == NULL) { -+ ret = xz_dec_run(s, &b); -+ } else { -+ do { -+ if (b.in_pos == b.in_size && fill != NULL) { -+ if (in_used != NULL) -+ *in_used += b.in_pos; -+ -+ b.in_pos = 0; -+ -+ in_size = fill(in, XZ_IOBUF_SIZE); -+ if (in_size < 0) { -+ /* -+ * This isn't an optimal error code -+ * but it probably isn't worth making -+ * a new one either. -+ */ -+ ret = XZ_BUF_ERROR; -+ break; -+ } -+ -+ b.in_size = in_size; -+ } -+ -+ ret = xz_dec_run(s, &b); -+ -+ if (flush != NULL && (b.out_pos == b.out_size -+ || (ret != XZ_OK && b.out_pos > 0))) { -+ /* -+ * Setting ret here may hide an error -+ * returned by xz_dec_run(), but probably -+ * it's not too bad. -+ */ -+ if (flush(b.out, b.out_pos) != (int)b.out_pos) -+ ret = XZ_BUF_ERROR; -+ -+ b.out_pos = 0; -+ } -+ } while (ret == XZ_OK); -+ -+ if (must_free_in) -+ free(in); -+ -+ if (flush != NULL) -+ free(b.out); -+ } -+ -+ if (in_used != NULL) -+ *in_used += b.in_pos; -+ -+ xz_dec_end(s); -+ -+ switch (ret) { -+ case XZ_STREAM_END: -+ return 0; -+ -+ case XZ_MEM_ERROR: -+ /* This can occur only in multi-call mode. */ -+ error("XZ decompressor ran out of memory"); -+ break; -+ -+ case XZ_FORMAT_ERROR: -+ error("Input is not in the XZ format (wrong magic bytes)"); -+ break; -+ -+ case XZ_OPTIONS_ERROR: -+ error("Input was encoded with settings that are not " -+ "supported by this XZ decoder"); -+ break; -+ -+ case XZ_DATA_ERROR: -+ case XZ_BUF_ERROR: -+ error("XZ-compressed data is corrupt"); -+ break; -+ -+ default: -+ error("Bug in the XZ decompressor"); -+ break; -+ } -+ -+ return -1; -+ -+error_alloc_in: -+ if (flush != NULL) -+ free(b.out); -+ -+error_alloc_out: -+ xz_dec_end(s); -+ -+error_alloc_state: -+ error("XZ decompressor ran out of memory"); -+ return -1; -+} -+ -+/* -+ * This macro is used by architecture-specific files to decompress -+ * the kernel image. -+ */ -+#define decompress unxz -diff --git a/scripts/gen_initramfs_list.sh b/scripts/gen_initramfs_list.sh -index 5958fff..55caecd 100644 ---- a/scripts/gen_initramfs_list.sh -+++ b/scripts/gen_initramfs_list.sh -@@ -243,6 +243,8 @@ case "$arg" in - echo "$output_file" | grep -q "\.gz$" && compr="gzip -9 -f" - echo "$output_file" | grep -q "\.bz2$" && compr="bzip2 -9 -f" - echo "$output_file" | grep -q "\.lzma$" && compr="lzma -9 -f" -+ echo "$output_file" | grep -q "\.xz$" && \ -+ compr="xz --check=crc32 --lzma2=dict=1MiB" - echo "$output_file" | grep -q "\.lzo$" && compr="lzop -9 -f" - echo "$output_file" | grep -q "\.cpio$" && compr="cat" - shift -diff --git a/usr/Kconfig b/usr/Kconfig -index e2721f5..9f51a29 100644 ---- a/usr/Kconfig -+++ b/usr/Kconfig -@@ -72,6 +72,18 @@ config RD_LZMA - Support loading of a LZMA encoded initial ramdisk or cpio buffer - If unsure, say N. - -+config RD_XZ -+ bool "Support initial ramdisks compressed using XZ" -+ depends on BLK_DEV_INITRD && XZ_DEC=y -+ select DECOMPRESS_XZ -+ help -+ Support loading of a XZ encoded initial ramdisk or cpio buffer. -+ -+ If this option is inactive, say Y to "XZ decompression support" -+ under "Library routines" first. -+ -+ If unsure, say N. -+ - config RD_LZO - bool "Support initial ramdisks compressed using LZO" if EMBEDDED - default !EMBEDDED -@@ -139,6 +151,15 @@ config INITRAMFS_COMPRESSION_LZMA - three. Compression is slowest. The initramfs size is about 33% - smaller with LZMA in comparison to gzip. - -+config INITRAMFS_COMPRESSION_XZ -+ bool "XZ" -+ depends on RD_XZ -+ help -+ XZ uses the LZMA2 algorithm. The initramfs size is about 30% -+ smaller with XZ in comparison to gzip. Decompression speed -+ is better than that of bzip2 but worse than gzip and LZO. -+ Compression is slow. -+ - config INITRAMFS_COMPRESSION_LZO - bool "LZO" - depends on RD_LZO -diff --git a/usr/Makefile b/usr/Makefile -index 6b4b6da..5845a13 100644 ---- a/usr/Makefile -+++ b/usr/Makefile -@@ -15,6 +15,9 @@ suffix_$(CONFIG_INITRAMFS_COMPRESSION_BZIP2) = .bz2 - # Lzma - suffix_$(CONFIG_INITRAMFS_COMPRESSION_LZMA) = .lzma - -+# XZ -+suffix_$(CONFIG_INITRAMFS_COMPRESSION_XZ) = .xz -+ - # Lzo - suffix_$(CONFIG_INITRAMFS_COMPRESSION_LZO) = .lzo - -@@ -48,7 +51,7 @@ endif - quiet_cmd_initfs = GEN $@ - cmd_initfs = $(initramfs) -o $@ $(ramfs-args) $(ramfs-input) - --targets := initramfs_data.cpio.gz initramfs_data.cpio.bz2 initramfs_data.cpio.lzma initramfs_data.cpio.lzo initramfs_data.cpio -+targets := initramfs_data.cpio.gz initramfs_data.cpio.bz2 initramfs_data.cpio.lzma initramfs_data.cpio.xz initramfs_data.cpio.lzo initramfs_data.cpio - # do not try to update files included in initramfs - $(deps_initramfs): ; - diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/003-squashfs-x86-support-xz-compressed-kernel.patch --- a/kernel-modular/stuff/003-squashfs-x86-support-xz-compressed-kernel.patch Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,128 +0,0 @@ -From: Lasse Collin -Date: Thu, 2 Dec 2010 19:14:57 +0000 (+0200) -Subject: x86: Support XZ-compressed kernel -X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fpkl%2Fsquashfs-xz.git;a=commitdiff_plain;h=d4ad78414e5312126127b1f88cdaf8584af3eef1 - -x86: Support XZ-compressed kernel - -This integrates the XZ decompression code to the x86 -pre-boot code. - -mkpiggy.c is updated to reserve about 32 KiB more buffer safety -margin for kernel decompression. It is done unconditionally for -all decompressors to keep the code simpler. - -The XZ decompressor needs around 30 KiB of heap, so the heap size -is increased to 32 KiB on both x86-32 and x86-64. - -Documentation/x86/boot.txt is updated to list the XZ magic number. - -With the x86 BCJ filter in XZ, XZ-compressed x86 kernel tends to be -a few percent smaller than the equivalent LZMA-compressed kernel. - -Signed-off-by: Lasse Collin ---- - -diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt -index 30b43e1..3988cde 100644 ---- a/Documentation/x86/boot.txt -+++ b/Documentation/x86/boot.txt -@@ -621,9 +621,9 @@ Protocol: 2.08+ - The payload may be compressed. The format of both the compressed and - uncompressed data should be determined using the standard magic - numbers. The currently supported compression formats are gzip -- (magic numbers 1F 8B or 1F 9E), bzip2 (magic number 42 5A) and LZMA -- (magic number 5D 00). The uncompressed payload is currently always ELF -- (magic number 7F 45 4C 46). -+ (magic numbers 1F 8B or 1F 9E), bzip2 (magic number 42 5A), LZMA -+ (magic number 5D 00), and XZ (magic number FD 37). The uncompressed -+ payload is currently always ELF (magic number 7F 45 4C 46). - - Field name: payload_length - Type: read -diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index cea0cd9..f3db0d7 100644 ---- a/arch/x86/Kconfig -+++ b/arch/x86/Kconfig -@@ -51,6 +51,7 @@ config X86 - select HAVE_KERNEL_GZIP - select HAVE_KERNEL_BZIP2 - select HAVE_KERNEL_LZMA -+ select HAVE_KERNEL_XZ - select HAVE_KERNEL_LZO - select HAVE_HW_BREAKPOINT - select HAVE_MIXED_BREAKPOINTS_REGS -diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile -index 0c22955..09664ef 100644 ---- a/arch/x86/boot/compressed/Makefile -+++ b/arch/x86/boot/compressed/Makefile -@@ -4,7 +4,7 @@ - # create a compressed vmlinux image from the original vmlinux - # - --targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.lzo head_$(BITS).o misc.o string.o cmdline.o early_serial_console.o piggy.o -+targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo head_$(BITS).o misc.o string.o cmdline.o early_serial_console.o piggy.o - - KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2 - KBUILD_CFLAGS += -fno-strict-aliasing -fPIC -@@ -49,12 +49,15 @@ $(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE - $(call if_changed,bzip2) - $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE - $(call if_changed,lzma) -+$(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE -+ $(call if_changed,xzkern) - $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE - $(call if_changed,lzo) - - suffix-$(CONFIG_KERNEL_GZIP) := gz - suffix-$(CONFIG_KERNEL_BZIP2) := bz2 - suffix-$(CONFIG_KERNEL_LZMA) := lzma -+suffix-$(CONFIG_KERNEL_XZ) := xz - suffix-$(CONFIG_KERNEL_LZO) := lzo - - quiet_cmd_mkpiggy = MKPIGGY $@ -diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c -index 8f7bef8..6d4cab7 100644 ---- a/arch/x86/boot/compressed/misc.c -+++ b/arch/x86/boot/compressed/misc.c -@@ -139,6 +139,10 @@ static int lines, cols; - #include "../../../../lib/decompress_unlzma.c" - #endif - -+#ifdef CONFIG_KERNEL_XZ -+#include "../../../../lib/decompress_unxz.c" -+#endif -+ - #ifdef CONFIG_KERNEL_LZO - #include "../../../../lib/decompress_unlzo.c" - #endif -diff --git a/arch/x86/boot/compressed/mkpiggy.c b/arch/x86/boot/compressed/mkpiggy.c -index 5c22812..646aa78 100644 ---- a/arch/x86/boot/compressed/mkpiggy.c -+++ b/arch/x86/boot/compressed/mkpiggy.c -@@ -74,7 +74,7 @@ int main(int argc, char *argv[]) - - offs = (olen > ilen) ? olen - ilen : 0; - offs += olen >> 12; /* Add 8 bytes for each 32K block */ -- offs += 32*1024 + 18; /* Add 32K + 18 bytes slack */ -+ offs += 64*1024 + 128; /* Add 64K + 128 bytes slack */ - offs = (offs+4095) & ~4095; /* Round to a 4K boundary */ - - printf(".section \".rodata..compressed\",\"a\",@progbits\n"); -diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h -index 3b62ab5..5e1a2ee 100644 ---- a/arch/x86/include/asm/boot.h -+++ b/arch/x86/include/asm/boot.h -@@ -32,11 +32,7 @@ - #define BOOT_HEAP_SIZE 0x400000 - #else /* !CONFIG_KERNEL_BZIP2 */ - --#ifdef CONFIG_X86_64 --#define BOOT_HEAP_SIZE 0x7000 --#else --#define BOOT_HEAP_SIZE 0x4000 --#endif -+#define BOOT_HEAP_SIZE 0x8000 - - #endif /* !CONFIG_KERNEL_BZIP2 */ - diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/004-squashfs-add-xz-compression-support.patch --- a/kernel-modular/stuff/004-squashfs-add-xz-compression-support.patch Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ -From: Phillip Lougher -Date: Thu, 9 Dec 2010 02:02:29 +0000 (+0000) -Subject: Squashfs: add XZ compression support -X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fpkl%2Fsquashfs-xz.git;a=commitdiff_plain;h=d3e6969b9ff1f3a3c6bf3da71433c77046aa80e4 - -Squashfs: add XZ compression support - -Add XZ decompressor wrapper code. - -Signed-off-by: Phillip Lougher ---- - -diff --git a/fs/squashfs/squashfs_fs.h b/fs/squashfs/squashfs_fs.h -index c5137fc..39533fe 100644 ---- a/fs/squashfs/squashfs_fs.h -+++ b/fs/squashfs/squashfs_fs.h -@@ -238,6 +238,7 @@ struct meta_index { - #define ZLIB_COMPRESSION 1 - #define LZMA_COMPRESSION 2 - #define LZO_COMPRESSION 3 -+#define XZ_COMPRESSION 4 - - struct squashfs_super_block { - __le32 s_magic; -diff --git a/fs/squashfs/xz_wrapper.c b/fs/squashfs/xz_wrapper.c -new file mode 100644 -index 0000000..053fe35 ---- /dev/null -+++ b/fs/squashfs/xz_wrapper.c -@@ -0,0 +1,153 @@ -+/* -+ * Squashfs - a compressed read only filesystem for Linux -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+ * -+ * xz_wrapper.c -+ */ -+ -+ -+#include -+#include -+#include -+#include -+ -+#include "squashfs_fs.h" -+#include "squashfs_fs_sb.h" -+#include "squashfs_fs_i.h" -+#include "squashfs.h" -+#include "decompressor.h" -+ -+struct squashfs_xz { -+ struct xz_dec *state; -+ struct xz_buf buf; -+}; -+ -+static void *squashfs_xz_init(struct squashfs_sb_info *msblk) -+{ -+ int block_size = max_t(int, msblk->block_size, SQUASHFS_METADATA_SIZE); -+ -+ struct squashfs_xz *stream = kmalloc(sizeof(*stream), GFP_KERNEL); -+ if (stream == NULL) -+ goto failed; -+ stream->state = xz_dec_init(XZ_PREALLOC, block_size); -+ if (stream->state == NULL) -+ goto failed; -+ -+ return stream; -+ -+failed: -+ ERROR("Failed to allocate xz workspace\n"); -+ kfree(stream); -+ return NULL; -+} -+ -+ -+static void squashfs_xz_free(void *strm) -+{ -+ struct squashfs_xz *stream = strm; -+ -+ if (stream) { -+ xz_dec_end(stream->state); -+ kfree(stream); -+ } -+} -+ -+ -+static int squashfs_xz_uncompress(struct squashfs_sb_info *msblk, void **buffer, -+ struct buffer_head **bh, int b, int offset, int length, int srclength, -+ int pages) -+{ -+ enum xz_ret xz_err; -+ int avail, total = 0, k = 0, page = 0; -+ struct squashfs_xz *stream = msblk->stream; -+ -+ mutex_lock(&msblk->read_data_mutex); -+ -+ xz_dec_reset(stream->state); -+ stream->buf.in_pos = 0; -+ stream->buf.in_size = 0; -+ stream->buf.out_pos = 0; -+ stream->buf.out_size = PAGE_CACHE_SIZE; -+ stream->buf.out = buffer[page++]; -+ -+ do { -+ if (stream->buf.in_pos == stream->buf.in_size && k < b) { -+ avail = min(length, msblk->devblksize - offset); -+ length -= avail; -+ wait_on_buffer(bh[k]); -+ if (!buffer_uptodate(bh[k])) -+ goto release_mutex; -+ -+ if (avail == 0) { -+ offset = 0; -+ put_bh(bh[k++]); -+ continue; -+ } -+ -+ stream->buf.in = bh[k]->b_data + offset; -+ stream->buf.in_size = avail; -+ stream->buf.in_pos = 0; -+ offset = 0; -+ } -+ -+ if (stream->buf.out_pos == stream->buf.out_size -+ && page < pages) { -+ stream->buf.out = buffer[page++]; -+ stream->buf.out_pos = 0; -+ total += PAGE_CACHE_SIZE; -+ } -+ -+ xz_err = xz_dec_run(stream->state, &stream->buf); -+ -+ if (stream->buf.in_pos == stream->buf.in_size && k < b) -+ put_bh(bh[k++]); -+ } while (xz_err == XZ_OK); -+ -+ if (xz_err != XZ_STREAM_END) { -+ ERROR("xz_dec_run error, data probably corrupt\n"); -+ goto release_mutex; -+ } -+ -+ if (k < b) { -+ ERROR("xz_uncompress error, input remaining\n"); -+ goto release_mutex; -+ } -+ -+ total += stream->buf.out_pos; -+ mutex_unlock(&msblk->read_data_mutex); -+ return total; -+ -+release_mutex: -+ mutex_unlock(&msblk->read_data_mutex); -+ -+ for (; k < b; k++) -+ put_bh(bh[k]); -+ -+ return -EIO; -+} -+ -+const struct squashfs_decompressor squashfs_xz_comp_ops = { -+ .init = squashfs_xz_init, -+ .free = squashfs_xz_free, -+ .decompress = squashfs_xz_uncompress, -+ .id = XZ_COMPRESSION, -+ .name = "xz", -+ .supported = 1 -+}; -+ diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/005-squashfs-add-xz-compression-configuration-option.patch --- a/kernel-modular/stuff/005-squashfs-add-xz-compression-configuration-option.patch Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -From: Phillip Lougher -Date: Thu, 9 Dec 2010 02:08:31 +0000 (+0000) -Subject: Squashfs: Add XZ compression configuration option -X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fpkl%2Fsquashfs-xz.git;a=commitdiff_plain;h=e23d468968e608de27328888240de27d7582ad52 - -Squashfs: Add XZ compression configuration option - -Signed-off-by: Phillip Lougher ---- - -diff --git a/fs/squashfs/Kconfig b/fs/squashfs/Kconfig -index e5f63da..e96d99a 100644 ---- a/fs/squashfs/Kconfig -+++ b/fs/squashfs/Kconfig -@@ -53,6 +53,22 @@ config SQUASHFS_LZO - - If unsure, say N. - -+config SQUASHFS_XZ -+ bool "Include support for XZ compressed file systems" -+ depends on SQUASHFS -+ default n -+ select XZ_DEC -+ help -+ Saying Y here includes support for reading Squashfs file systems -+ compressed with XZ compresssion. XZ gives better compression than -+ the default zlib compression, at the expense of greater CPU and -+ memory overhead. -+ -+ XZ is not the standard compression used in Squashfs and so most -+ file systems will be readable without selecting this option. -+ -+ If unsure, say N. -+ - config SQUASHFS_EMBEDDED - bool "Additional option for memory-constrained systems" - depends on SQUASHFS -diff --git a/fs/squashfs/Makefile b/fs/squashfs/Makefile -index 7672bac..cecf2be 100644 ---- a/fs/squashfs/Makefile -+++ b/fs/squashfs/Makefile -@@ -7,3 +7,4 @@ squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o - squashfs-y += namei.o super.o symlink.o zlib_wrapper.o decompressor.o - squashfs-$(CONFIG_SQUASHFS_XATTR) += xattr.o xattr_id.o - squashfs-$(CONFIG_SQUASHFS_LZO) += lzo_wrapper.o -+squashfs-$(CONFIG_SQUASHFS_XZ) += xz_wrapper.o -diff --git a/fs/squashfs/decompressor.c b/fs/squashfs/decompressor.c -index 24af9ce..ac333b8 100644 ---- a/fs/squashfs/decompressor.c -+++ b/fs/squashfs/decompressor.c -@@ -46,6 +46,12 @@ static const struct squashfs_decompressor squashfs_lzo_unsupported_comp_ops = { - }; - #endif - -+#ifndef CONFIG_SQUASHFS_XZ -+static const struct squashfs_decompressor squashfs_xz_unsupported_comp_ops = { -+ NULL, NULL, NULL, XZ_COMPRESSION, "xz", 0 -+}; -+#endif -+ - static const struct squashfs_decompressor squashfs_unknown_comp_ops = { - NULL, NULL, NULL, 0, "unknown", 0 - }; -@@ -58,6 +64,11 @@ static const struct squashfs_decompressor *decompressor[] = { - #else - &squashfs_lzo_unsupported_comp_ops, - #endif -+#ifdef CONFIG_SQUASHFS_XZ -+ &squashfs_xz_comp_ops, -+#else -+ &squashfs_xz_unsupported_comp_ops, -+#endif - &squashfs_unknown_comp_ops - }; - -diff --git a/fs/squashfs/squashfs.h b/fs/squashfs/squashfs.h -index 5d45569..1096e2e 100644 ---- a/fs/squashfs/squashfs.h -+++ b/fs/squashfs/squashfs.h -@@ -107,3 +107,6 @@ extern const struct squashfs_decompressor squashfs_zlib_comp_ops; - - /* lzo_wrapper.c */ - extern const struct squashfs_decompressor squashfs_lzo_comp_ops; -+ -+/* xz_wrapper.c */ -+extern const struct squashfs_decompressor squashfs_xz_comp_ops; diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/aufs2-2.6.36-fix.patch --- a/kernel-modular/stuff/aufs2-2.6.36-fix.patch Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -diff --git a/fs/file_table.c b/fs/file_table.c -index a04bdd8..fbf8908 100644 ---- a/fs/file_table.c -+++ b/fs/file_table.c -@@ -20,7 +20,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -34,7 +33,6 @@ struct files_stat_struct files_stat = { - .max_files = NR_FILE - }; - --DECLARE_LGLOCK(files_lglock); - DEFINE_LGLOCK(files_lglock); - - /* SLAB cache for file structures */ -@@ -394,37 +392,6 @@ void file_sb_list_del(struct file *file) - } - } - --#ifdef CONFIG_SMP -- --/* -- * These macros iterate all files on all CPUs for a given superblock. -- * files_lglock must be held globally. -- */ --#define do_file_list_for_each_entry(__sb, __file) \ --{ \ -- int i; \ -- for_each_possible_cpu(i) { \ -- struct list_head *list; \ -- list = per_cpu_ptr((__sb)->s_files, i); \ -- list_for_each_entry((__file), list, f_u.fu_list) -- --#define while_file_list_for_each_entry \ -- } \ --} -- --#else -- --#define do_file_list_for_each_entry(__sb, __file) \ --{ \ -- struct list_head *list; \ -- list = &(sb)->s_files; \ -- list_for_each_entry((__file), list, f_u.fu_list) -- --#define while_file_list_for_each_entry \ --} -- --#endif -- - int fs_may_remount_ro(struct super_block *sb) - { - struct file *file; -diff --git a/fs/statfs.c b/fs/statfs.c -index 30ea8c8..9025c98 100644 ---- a/fs/statfs.c -+++ b/fs/statfs.c -@@ -61,6 +61,7 @@ int statfs_by_dentry(struct dentry *dentry, struct kstatfs *buf) - buf->f_frsize = buf->f_bsize; - return retval; - } -+EXPORT_SYMBOL(statfs_by_dentry); - - int vfs_statfs(struct path *path, struct kstatfs *buf) - { -diff --git a/include/linux/fs.h b/include/linux/fs.h -index 63d069b..741d296 100644 ---- a/include/linux/fs.h -+++ b/include/linux/fs.h -@@ -9,6 +9,7 @@ - #include - #include - #include -+#include - - /* - * It's silly to have NR_OPEN bigger than NR_FILE, but you can change -@@ -1814,6 +1815,7 @@ extern struct vfsmount *collect_mounts(struct path *); - extern void drop_collected_mounts(struct vfsmount *); - extern int iterate_mounts(int (*)(struct vfsmount *, void *), void *, - struct vfsmount *); -+extern int statfs_by_dentry(struct dentry *dentry, struct kstatfs *buf); - extern int vfs_statfs(struct path *, struct kstatfs *); - extern int statfs_by_dentry(struct dentry *, struct kstatfs *); - extern int freeze_super(struct super_block *super); -@@ -2481,5 +2483,39 @@ int __init get_filesystem_list(char *buf); - #define OPEN_FMODE(flag) ((__force fmode_t)(((flag + 1) & O_ACCMODE) | \ - (flag & FMODE_NONOTIFY))) - -+ -+DECLARE_LGLOCK(files_lglock); -+ -+#ifdef CONFIG_SMP -+ -+/* -+ * These macros iterate all files on all CPUs for a given superblock. -+ * files_lglock must be held globally. -+ */ -+#define do_file_list_for_each_entry(__sb, __file) \ -+{ \ -+ int i; \ -+ for_each_possible_cpu(i) { \ -+ struct list_head *list; \ -+ list = per_cpu_ptr((__sb)->s_files, i); \ -+ list_for_each_entry((__file), list, f_u.fu_list) -+ -+#define while_file_list_for_each_entry \ -+ } \ -+} -+ -+#else -+ -+#define do_file_list_for_each_entry(__sb, __file) \ -+{ \ -+ struct list_head *list; \ -+ list = &(sb)->s_files; \ -+ list_for_each_entry((__file), list, f_u.fu_list) -+ -+#define while_file_list_for_each_entry \ -+} -+ -+#endif -+ - #endif /* __KERNEL__ */ - #endif /* _LINUX_FS_H */ diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/aufs2-base.patch --- a/kernel-modular/stuff/aufs2-base.patch Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -aufs2.1 base patch for linux-2.6.37 - -diff --git a/fs/namei.c b/fs/namei.c -index 4ff7ca5..a8c583f 100644 ---- a/fs/namei.c -+++ b/fs/namei.c -@@ -1161,12 +1161,12 @@ out: - * needs parent already locked. Doesn't follow mounts. - * SMP-safe. - */ --static struct dentry *lookup_hash(struct nameidata *nd) -+struct dentry *lookup_hash(struct nameidata *nd) - { - return __lookup_hash(&nd->last, nd->path.dentry, nd); - } - --static int __lookup_one_len(const char *name, struct qstr *this, -+int __lookup_one_len(const char *name, struct qstr *this, - struct dentry *base, int len) - { - unsigned long hash; -diff --git a/fs/splice.c b/fs/splice.c -index ce2f025..ff0ae69 100644 ---- a/fs/splice.c -+++ b/fs/splice.c -@@ -1092,8 +1092,8 @@ EXPORT_SYMBOL(generic_splice_sendpage); - /* - * Attempt to initiate a splice from pipe to file. - */ --static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, -- loff_t *ppos, size_t len, unsigned int flags) -+long do_splice_from(struct pipe_inode_info *pipe, struct file *out, -+ loff_t *ppos, size_t len, unsigned int flags) - { - ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, - loff_t *, size_t, unsigned int); -@@ -1120,9 +1120,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, - /* - * Attempt to initiate a splice from a file to a pipe. - */ --static long do_splice_to(struct file *in, loff_t *ppos, -- struct pipe_inode_info *pipe, size_t len, -- unsigned int flags) -+long do_splice_to(struct file *in, loff_t *ppos, -+ struct pipe_inode_info *pipe, size_t len, -+ unsigned int flags) - { - ssize_t (*splice_read)(struct file *, loff_t *, - struct pipe_inode_info *, size_t, unsigned int); -diff --git a/include/linux/namei.h b/include/linux/namei.h -index 05b441d..91bc74e 100644 ---- a/include/linux/namei.h -+++ b/include/linux/namei.h -@@ -73,6 +73,9 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *, - extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry, - int (*open)(struct inode *, struct file *)); - -+extern struct dentry *lookup_hash(struct nameidata *nd); -+extern int __lookup_one_len(const char *name, struct qstr *this, -+ struct dentry *base, int len); - extern struct dentry *lookup_one_len(const char *, struct dentry *, int); - - extern int follow_down(struct path *); -diff --git a/include/linux/splice.h b/include/linux/splice.h -index 997c3b4..be9a153 100644 ---- a/include/linux/splice.h -+++ b/include/linux/splice.h -@@ -89,4 +89,10 @@ extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *); - extern void splice_shrink_spd(struct pipe_inode_info *, - struct splice_pipe_desc *); - -+extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out, -+ loff_t *ppos, size_t len, unsigned int flags); -+extern long do_splice_to(struct file *in, loff_t *ppos, -+ struct pipe_inode_info *pipe, size_t len, -+ unsigned int flags); -+ - #endif diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/aufs2-kbuild.patch --- a/kernel-modular/stuff/aufs2-kbuild.patch Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -aufs2.1 kbuild patch for linux-2.6.37 - -diff --git a/fs/Kconfig b/fs/Kconfig -index 771f457..bb1a52f 100644 ---- a/fs/Kconfig -+++ b/fs/Kconfig -@@ -191,6 +191,7 @@ source "fs/romfs/Kconfig" - source "fs/sysv/Kconfig" - source "fs/ufs/Kconfig" - source "fs/exofs/Kconfig" -+source "fs/aufs/Kconfig" - - endif # MISC_FILESYSTEMS - -diff --git a/fs/Makefile b/fs/Makefile -index a7f7cef..95dd4d3 100644 ---- a/fs/Makefile -+++ b/fs/Makefile -@@ -121,3 +121,4 @@ obj-$(CONFIG_BTRFS_FS) += btrfs/ - obj-$(CONFIG_GFS2_FS) += gfs2/ - obj-$(CONFIG_EXOFS_FS) += exofs/ - obj-$(CONFIG_CEPH_FS) += ceph/ -+obj-$(CONFIG_AUFS_FS) += aufs/ -diff --git a/include/linux/Kbuild b/include/linux/Kbuild -index 97319a8..7ebb4b4 100644 ---- a/include/linux/Kbuild -+++ b/include/linux/Kbuild -@@ -60,6 +60,7 @@ header-y += atmppp.h - header-y += atmsap.h - header-y += atmsvc.h - header-y += audit.h -+header-y += aufs_type.h - header-y += auto_fs.h - header-y += auto_fs4.h - header-y += auxvec.h diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/aufs2-module-2.6.36.patch --- a/kernel-modular/stuff/aufs2-module-2.6.36.patch Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -diff --git a/ubuntu/aufs/branch.c b/ubuntu/aufs/branch.c -index cd4463c..ff6b158 100644 ---- a/fs/aufs/branch.c -+++ b/fs/aufs/branch.c -@@ -22,6 +22,8 @@ - - #include - #include -+#include -+#include - #include "aufs.h" - - /* -@@ -851,7 +853,8 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex) - goto out; - - /* no need file_list_lock() since sbinfo is locked? defered? */ -- list_for_each_entry(file, &sb->s_files, f_u.fu_list) { -+ lg_global_lock(files_lglock); -+ do_file_list_for_each_entry(sb, file) { - if (special_file(file->f_dentry->d_inode->i_mode)) - continue; - -@@ -861,6 +864,7 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex) - err = -EBUSY; - FiMustNoWaiters(file); - fi_read_unlock(file); -+ lg_global_unlock(files_lglock); - goto out_free; - } - -@@ -889,10 +893,13 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex) - if (p) { - a = p; - a[n++] = hf; -- } else -+ } else { -+ lg_global_unlock(files_lglock); - goto out_free; -+ } - } -- } -+ } while_file_list_for_each_entry; -+ lg_global_unlock(files_lglock); - - err = 0; - if (n) diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/aufs2-standalone.patch --- a/kernel-modular/stuff/aufs2-standalone.patch Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,289 +0,0 @@ -aufs2.1 standalone patch for linux-2.6.37 - -diff --git a/fs/file_table.c b/fs/file_table.c -index c3dee38..f529e4d 100644 ---- a/fs/file_table.c -+++ b/fs/file_table.c -@@ -393,6 +393,8 @@ void file_sb_list_del(struct file *file) - } - } - -+EXPORT_SYMBOL(file_sb_list_del); -+ - #ifdef CONFIG_SMP - - /* -diff --git a/fs/inode.c b/fs/inode.c -index ae2727a..2c8071a 100644 ---- a/fs/inode.c -+++ b/fs/inode.c -@@ -82,6 +82,7 @@ static struct hlist_head *inode_hashtable __read_mostly; - * the i_state of an inode while it is in use.. - */ - DEFINE_SPINLOCK(inode_lock); -+EXPORT_SYMBOL(inode_lock); - - /* - * iprune_sem provides exclusion between the kswapd or try_to_free_pages -diff --git a/fs/namei.c b/fs/namei.c -index a8c583f..b020c45 100644 ---- a/fs/namei.c -+++ b/fs/namei.c -@@ -347,6 +347,7 @@ int deny_write_access(struct file * file) - - return 0; - } -+EXPORT_SYMBOL(deny_write_access); - - /** - * path_get - get a reference to a path -@@ -1165,6 +1166,7 @@ struct dentry *lookup_hash(struct nameidata *nd) - { - return __lookup_hash(&nd->last, nd->path.dentry, nd); - } -+EXPORT_SYMBOL(lookup_hash); - - int __lookup_one_len(const char *name, struct qstr *this, - struct dentry *base, int len) -@@ -1187,6 +1189,7 @@ int __lookup_one_len(const char *name, struct qstr *this, - this->hash = end_name_hash(hash); - return 0; - } -+EXPORT_SYMBOL(__lookup_one_len); - - /** - * lookup_one_len - filesystem helper to lookup single pathname component -diff --git a/fs/namespace.c b/fs/namespace.c -index 3dbfc07..3998762 100644 ---- a/fs/namespace.c -+++ b/fs/namespace.c -@@ -1321,6 +1321,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, - } - return 0; - } -+EXPORT_SYMBOL(iterate_mounts); - - static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end) - { -diff --git a/fs/notify/group.c b/fs/notify/group.c -index d309f38..f0e9568 100644 ---- a/fs/notify/group.c -+++ b/fs/notify/group.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - #include - #include "fsnotify.h" -@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group) - if (atomic_dec_and_test(&group->refcnt)) - fsnotify_destroy_group(group); - } -+EXPORT_SYMBOL(fsnotify_put_group); - - /* - * Create a new fsnotify_group and hold a reference for the group returned. -@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops) - - return group; - } -+EXPORT_SYMBOL(fsnotify_alloc_group); -diff --git a/fs/notify/mark.c b/fs/notify/mark.c -index 325185e..adede09 100644 ---- a/fs/notify/mark.c -+++ b/fs/notify/mark.c -@@ -113,6 +113,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark) - if (atomic_dec_and_test(&mark->refcnt)) - mark->free_mark(mark); - } -+EXPORT_SYMBOL(fsnotify_put_mark); - - /* - * Any time a mark is getting freed we end up here. -@@ -190,6 +191,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark) - if (unlikely(atomic_dec_and_test(&group->num_marks))) - fsnotify_final_destroy_group(group); - } -+EXPORT_SYMBOL(fsnotify_destroy_mark); - - void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask) - { -@@ -277,6 +279,7 @@ err: - - return ret; - } -+EXPORT_SYMBOL(fsnotify_add_mark); - - /* - * clear any marks in a group in which mark->flags & flags is true -@@ -332,6 +335,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark, - atomic_set(&mark->refcnt, 1); - mark->free_mark = free_mark; - } -+EXPORT_SYMBOL(fsnotify_init_mark); - - static int fsnotify_mark_destroy(void *ignored) - { -diff --git a/fs/open.c b/fs/open.c -index 4197b9e..912817a 100644 ---- a/fs/open.c -+++ b/fs/open.c -@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, - mutex_unlock(&dentry->d_inode->i_mutex); - return ret; - } -+EXPORT_SYMBOL(do_truncate); - - static long do_sys_truncate(const char __user *pathname, loff_t length) - { -diff --git a/fs/splice.c b/fs/splice.c -index ff0ae69..1c9e9b0 100644 ---- a/fs/splice.c -+++ b/fs/splice.c -@@ -1116,6 +1116,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out, - - return splice_write(pipe, out, ppos, len, flags); - } -+EXPORT_SYMBOL(do_splice_from); - - /* - * Attempt to initiate a splice from a file to a pipe. -@@ -1142,6 +1143,7 @@ long do_splice_to(struct file *in, loff_t *ppos, - - return splice_read(in, ppos, pipe, len, flags); - } -+EXPORT_SYMBOL(do_splice_to); - - /** - * splice_direct_to_actor - splices data directly between two non-pipes -diff --git a/security/commoncap.c b/security/commoncap.c -index 64c2ed9..e58b5d8 100644 ---- a/security/commoncap.c -+++ b/security/commoncap.c -@@ -929,3 +929,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot, - } - return ret; - } -+EXPORT_SYMBOL(cap_file_mmap); -diff --git a/security/device_cgroup.c b/security/device_cgroup.c -index 8d9c48f..29108aa 100644 ---- a/security/device_cgroup.c -+++ b/security/device_cgroup.c -@@ -515,6 +515,7 @@ found: - - return -EPERM; - } -+EXPORT_SYMBOL(devcgroup_inode_permission); - - int devcgroup_inode_mknod(int mode, dev_t dev) - { -diff --git a/security/security.c b/security/security.c -index 1b798d3..3b7d2ca 100644 ---- a/security/security.c -+++ b/security/security.c -@@ -360,6 +360,7 @@ int security_path_mkdir(struct path *dir, struct dentry *dentry, int mode) - return 0; - return security_ops->path_mkdir(dir, dentry, mode); - } -+EXPORT_SYMBOL(security_path_mkdir); - - int security_path_rmdir(struct path *dir, struct dentry *dentry) - { -@@ -367,6 +368,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry) - return 0; - return security_ops->path_rmdir(dir, dentry); - } -+EXPORT_SYMBOL(security_path_rmdir); - - int security_path_unlink(struct path *dir, struct dentry *dentry) - { -@@ -374,6 +376,7 @@ int security_path_unlink(struct path *dir, struct dentry *dentry) - return 0; - return security_ops->path_unlink(dir, dentry); - } -+EXPORT_SYMBOL(security_path_unlink); - - int security_path_symlink(struct path *dir, struct dentry *dentry, - const char *old_name) -@@ -382,6 +385,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry, - return 0; - return security_ops->path_symlink(dir, dentry, old_name); - } -+EXPORT_SYMBOL(security_path_symlink); - - int security_path_link(struct dentry *old_dentry, struct path *new_dir, - struct dentry *new_dentry) -@@ -390,6 +394,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir, - return 0; - return security_ops->path_link(old_dentry, new_dir, new_dentry); - } -+EXPORT_SYMBOL(security_path_link); - - int security_path_rename(struct path *old_dir, struct dentry *old_dentry, - struct path *new_dir, struct dentry *new_dentry) -@@ -400,6 +405,7 @@ int security_path_rename(struct path *old_dir, struct dentry *old_dentry, - return security_ops->path_rename(old_dir, old_dentry, new_dir, - new_dentry); - } -+EXPORT_SYMBOL(security_path_rename); - - int security_path_truncate(struct path *path) - { -@@ -407,6 +413,7 @@ int security_path_truncate(struct path *path) - return 0; - return security_ops->path_truncate(path); - } -+EXPORT_SYMBOL(security_path_truncate); - - int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt, - mode_t mode) -@@ -415,6 +422,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt, - return 0; - return security_ops->path_chmod(dentry, mnt, mode); - } -+EXPORT_SYMBOL(security_path_chmod); - - int security_path_chown(struct path *path, uid_t uid, gid_t gid) - { -@@ -422,6 +430,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid) - return 0; - return security_ops->path_chown(path, uid, gid); - } -+EXPORT_SYMBOL(security_path_chown); - - int security_path_chroot(struct path *path) - { -@@ -498,6 +507,7 @@ int security_inode_readlink(struct dentry *dentry) - return 0; - return security_ops->inode_readlink(dentry); - } -+EXPORT_SYMBOL(security_inode_readlink); - - int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd) - { -@@ -512,6 +522,7 @@ int security_inode_permission(struct inode *inode, int mask) - return 0; - return security_ops->inode_permission(inode, mask); - } -+EXPORT_SYMBOL(security_inode_permission); - - int security_inode_setattr(struct dentry *dentry, struct iattr *attr) - { -@@ -611,6 +622,7 @@ int security_file_permission(struct file *file, int mask) - - return fsnotify_perm(file, mask); - } -+EXPORT_SYMBOL(security_file_permission); - - int security_file_alloc(struct file *file) - { -@@ -638,6 +650,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot, - return ret; - return ima_file_mmap(file, prot); - } -+EXPORT_SYMBOL(security_file_mmap); - - int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot, - unsigned long prot) diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/bootloader.sh --- a/kernel-modular/stuff/bootloader.sh Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,218 +0,0 @@ -#!/bin/sh -# -# This script creates a floppy image set from a linux bzImage and can merge -# a cmdline and/or one or more initramfs. -# The total size can not exceed 15M because INT 15H function 87H limitations. -# -# (C) 2009 Pascal Bellard - GNU General Public License v3. - -usage() -{ -cat < /dev/null - [ -n "$DEBUG" ] && printf "store16(%04X) = %04X\n" $1 $2 1>&2 -} - -# write a 32 bits data -# usage: storelong offset data32 file -storelong() -{ - echo $2 | awk '{ printf "\\\\x%02X\\\\x%02X\\\\x%02X\\\\x%02X", - $1%256,($1/256)%256,($1/256/256)%256,($1/256/256/256)%256 }' | \ - xargs echo -en | \ - dd bs=4 conv=notrunc of=$3 seek=$(( $1 / 4 )) 2> /dev/null - [ -n "$DEBUG" ] && printf "storelong(%04X) = %08X\n" $1 $2 1>&2 -} - -# read a 32 bits data -# usage: getlong offset file -getlong() -{ - dd if=$2 bs=1 skip=$(( $1 )) count=4 2> /dev/null | \ - hexdump -e '"" 1/4 "%d" "\n"' -} - -floppyset() -{ - # bzImage offsets - CylinderCount=496 - SetupSzOfs=497 - FlagsOfs=498 - SyssizeOfs=500 - VideoModeOfs=506 - RootDevOfs=508 - CodeAdrOfs=0x214 - RamfsAdrOfs=0x218 - RamfsLenOfs=0x21C - ArgPtrOfs=0x228 - - # boot+setup address - SetupBase=0x90000 - - stacktop=0x9E00 - - bs=/tmp/bs$$ - - # Get and patch boot sector - # See http://hg.slitaz.org/wok/raw-file/711d076b277c/linux/stuff/linux-header-2.6.34.u - dd if=$KERNEL bs=512 count=1 of=$bs 2> /dev/null - uudecode < /dev/null -begin-base64 644 - -/L+6nWgAkAcGF4n8McC5HQDzq1sfD6mg8X1ABlfFd3ixBvOlZWaPR3gGH8ZF -+D/6l1hB6DQBvgACA3QO6HYBWwseKAJ0LFNH6AoBXuhmAbAgzRCwCM0QTuhl -ATwIdAOIBK05NigCdPDoPgE8CnXgiHz+ieb/TBD/TBi/9AGBTRz/gMdFMACc -sBCxBUi0k4lEHLABiUQUmGaY0+BIZgMFZtPoaAAQB7+AACn4nHMCAccx21BW -6J4AXrkAgLSH/kQczRVYnXfcoRoCvxwCsQk4RBxyuJPNE+oAACCQsEYoyL7b -AejSAF3rI4D5E3IEOMF3a4D+AnIEOOZ3bGCB/QAGdCoGUlFTlrQCULEGtQTB -xQSwDyHoBJAnFEAn6IwA/s117LAgzRDitOiWAJjNE2FSUCjIdwKwAZg5+HIC -ifhQtALNE5VeWFpyoJVBjuGAxwJPdFFOdfSM4ZU4wXVFiMj+xrEBOOZ1O4j0 -/sW2AID9UHIwOi7wAXIqtQBgvt4B/kQMU+gxAFvoOAB1FlKYzRO4AQLNE1rQ -1Dpk/nXqRgjkdeVh64sWB7AxLAO0DrsHAM0QPA1088OwDejv/6wIwHX4w79s -BLFbZQINuA0BZToNdArNFnT0mM0Wju9Hw1g6AEluc2VydCBkaXNrIDEuBw0A -AA== -==== -EOT - - # Get setup - setupsz=$(getlong $SetupSzOfs $bs) - setupszb=$(( $setupsz & 255 )) - dd if=$KERNEL bs=512 skip=1 count=$setupszb 2> /dev/null >> $bs - - if [ -n "$TRACKS" ]; then - [ -n "$DEBUG" ] && echo -n "--tracks " 1>&2 - n=$(getlong $CylinderCount $bs) - store16 $CylinderCount $(( ($n & -256) + $TRACKS )) $bs - fi - if [ -n "$FLAGS" ]; then - [ -n "$DEBUG" ] && echo -n "--flags " 1>&2 - store16 $FlagsOfs $FLAGS $bs - fi - if [ -n "$VIDEO" ]; then - [ -n "$DEBUG" ] && echo -n "--video " 1>&2 - store16 $VideoModeOfs $VIDEO $bs - fi - if [ -n "$RDEV" ]; then - [ -n "$DEBUG" ] && echo -n "--rdev " 1>&2 - n=$(stat -c '0x%02t%02T' $RDEV 2> /dev/null) - [ -n "$n" ] || n=$RDEV - store16 $RootDevOfs $n $bs - fi - - # Store cmdline after setup - if [ -n "$CMDLINE" ]; then - [ -n "$DEBUG" ] && echo -n "--cmdline '$CMDLINE' " 1>&2 - echo -n "$CMDLINE" | dd bs=512 count=1 conv=sync 2> /dev/null >> $bs - storelong $ArgPtrOfs $(( $SetupBase + $stacktop )) $bs - fi - - # Compute initramfs size - initrdlen=0 - padding=0 - for i in $( echo $INITRD | sed 's/,/ /' ); do - [ -s "$i" ] || continue - [ -n "$DEBUG" ] && echo "--initrd $i " 1>&2 - initrdlen=$(( $initrdlen + $padding )) - padding=$(stat -c %s $i) - initrdlen=$(( $initrdlen + $padding )) - padding=$(( 4096 - ($padding & 4095) )) - [ $padding -eq 4096 ] && padding=0 - done - Ksize=$(( $(getlong $SyssizeOfs $bs)*16 )) - Kpad=$(( (($Ksize+4095)/4096)*4096 - Ksize )) - if [ $initrdlen -ne 0 ]; then - [ -n "$DEBUG" ] && echo "initrdlen = $initrdlen " 1>&2 - Kbase=$(getlong $CodeAdrOfs $bs) - storelong $RamfsAdrOfs \ - $(( (0x1000000 - $initrdlen) & 0xFFFF0000 )) $bs - storelong $RamfsLenOfs $(( ($initrdlen + 3) & -4 )) $bs - fi - - # Output boot sector + setup + cmdline - dd if=$bs 2> /dev/null - - # Output kernel code - dd if=$KERNEL bs=512 skip=$(( $setupszb + 1 )) 2> /dev/null - - # Pad to next sector - Kpad=$(( 512 - ($(stat -c %s $KERNEL) & 511) )) - [ $Kpad -eq 512 ] || dd if=/dev/zero bs=1 count=$Kpad 2> /dev/null - - # Output initramfs - padding=0 - for i in $( echo $INITRD | sed 's/,/ /' ); do - [ -s "$i" ] || continue - [ $padding -ne 0 ] && dd if=/dev/zero bs=1 count=$padding 2> /dev/null - dd if=$i 2> /dev/null - padding=$(( 4 - ($(stat -c %s $i) & 3) )) - [ $padding -eq 4 ] && padding=0 - done - - # Cleanup - rm -f $bs -} - -if [ "$FORMAT" == "0" ]; then # unsplitted - floppyset > $PREFIX - exit -fi -floppyset | split -b ${FORMAT}k /dev/stdin floppy$$ -i=1 -ls floppy$$* | while read file ; do - output=$PREFIX$(printf "%03d" $i) - cat $file /dev/zero | dd bs=1k count=$FORMAT conv=sync of=$output 2> /dev/null - echo $output - rm -f $file - i=$(( $i + 1 )) -done diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/check_modules.sh --- a/kernel-modular/stuff/check_modules.sh Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -#!/bin/sh -# Echo any module in kernel .config that's not added to one of linux-* pkgs -# (c) SliTaz - GNU General Public License. -# 20090618 -# 20100528 -# -. /etc/tazwok.conf -VERSION=`grep ^VERSION= $WOK/linux/receipt | cut -d "=" -f2 | sed -e 's/"//g'` -src="$WOK/linux/linux-$VERSION" - -cd $src -mkdir -p ../stuff/tmp -rm -f ../stuff/tmp/* - -echo -e "\nChecking for modules selected in .config but not in linux-* pkgs" -echo "======================================================================" - -# create a packaged modules list -cat ../stuff/modules-"$VERSION".list >> ../stuff/tmp/pkgs-modules-"$VERSION".list - -for i in $(cd $WOK; ls -d linux-*) -do - tazpath="taz/$i-$VERSION" - for j in $(cat $WOK/$i/$tazpath/files.list | grep ".ko.gz") - do - basename $j >> ../stuff/tmp/pkgs-modules-"$VERSION".list - done -done -# get the original list in .config -for i in $(find $_pkg -iname "*.ko.gz") -do - basename $i >> ../stuff/tmp/originial-"$VERSION".list -done -# compare original .config and pkged modules -for i in $(cat ../stuff/tmp/originial-$VERSION.list) -do - if ! grep -qs "$i" ../stuff/tmp/pkgs-modules-"$VERSION".list ; then - modpath=`find $_pkg -iname "$i"` - echo "Orphan module: $i" - echo "$i : $modpath" >> ../stuff/tmp/unpackaged-modules-"$VERSION".list - fi -done -if [ -f ../stuff/tmp/unpackaged-modules-"$VERSION".list ]; then - echo "======================================================================" - echo -e "Check linux/stuff/tmp/unpackaged-modules-$VERSION.list for mod path\n" -else - echo -e "\nAll modules are packaged\n" - echo "======================================================================" - echo "" - rm -rf ../stuff/tmp -fi diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/gztazmod.sh --- a/kernel-modular/stuff/gztazmod.sh Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -#!/bin/sh -# gztazmod.sh: Compress Linux kernel modules for SliTaz GNU/Linux. -# 2007/10/04 - GNU General Public License. -# - -# We do our work in the kernel version modules directory. -if [ -z "$1" ] ; then - echo "" - echo -e "\033[1musage:\033[0m `basename $0` path/to/kernel-version" - echo "" - exit 1 -fi - -if [ ! -r "$1" ] ; then - echo "" - echo -e "Error : $1 does not exist." - echo "" - exit 1 -fi - -cd $1 - -# Status functions. -status() -{ - local CHECK=$? - echo -en "\\033[70G[ " - if [ $CHECK = 0 ]; then - echo -en "\\033[1;33mOK" - else - echo -en "\\033[1;31mFailed" - fi - echo -e "\\033[0;39m ]" -} - -# Script start. -echo "" -echo "Starting gztazmod.sh to build compressed kernel modules... " -echo "" - -# Find all modules. -echo -n "Searching all modules to compress them... " -find . -name "*.ko" -exec lzma e '{}' '{}'.gz \; 2> /dev/null -status -find . -name "*.ko" -exec rm '{}' \; - -# Build a new temporary modules.dep. -echo -n "Building tmp.dep... " -sed 's/\.ko.gz/.ko/g' modules.dep > tmp.dep -sed -i 's/\.ko.gz/.ko/g' tmp.dep -sed -i 's/\.ko/.ko.gz/g' tmp.dep -status - -# Destroy original modules.dep -echo -n "Destroying modules.dep... " -rm modules.dep -status - -# Remove tmp.dep to modules.dep. -echo -n "Removing tmp.dep to modules.dep... " -mv tmp.dep modules.dep -status - -# Script end. -echo "" -echo "Kernel modules `basename $1` are ready." -echo "" diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/linux-2.6.37-slitaz.config-i486-isa --- a/kernel-modular/stuff/linux-2.6.37-slitaz.config-i486-isa Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,920 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux/i386 2.6.37 Kernel Configuration -# Tue May 3 12:16:19 2011 -# -# CONFIG_64BIT is not set -CONFIG_X86_32=y -# CONFIG_X86_64 is not set -CONFIG_X86=y -CONFIG_INSTRUCTION_DECODER=y -CONFIG_OUTPUT_FORMAT="elf32-i386" -CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_CLOCKSOURCE_WATCHDOG=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_HAVE_LATENCYTOP_SUPPORT=y -CONFIG_MMU=y -CONFIG_ZONE_DMA=y -# CONFIG_NEED_DMA_MAP_STATE is not set -CONFIG_NEED_SG_DMA_LENGTH=y -CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_IOMAP=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_ARCH_MAY_HAVE_PC_FDC=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -# CONFIG_GENERIC_TIME_VSYSCALL is not set -CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HAS_DEFAULT_IDLE=y -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y -CONFIG_HAVE_SETUP_PER_CPU_AREA=y -CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y -CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -# CONFIG_ZONE_DMA32 is not set -CONFIG_ARCH_POPULATES_NODE_MAP=y -# CONFIG_AUDIT_ARCH is not set -CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y -CONFIG_X86_32_LAZY_GS=y -CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" -CONFIG_KTIME_SCALAR=y -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y -CONFIG_HAVE_IRQ_WORK=y -CONFIG_IRQ_WORK=y - -# -# General setup -# -CONFIG_EXPERIMENTAL=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_CROSS_COMPILE="" -CONFIG_LOCALVERSION="-slitaz" -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_HAVE_KERNEL_BZIP2=y -CONFIG_HAVE_KERNEL_LZMA=y -CONFIG_HAVE_KERNEL_XZ=y -CONFIG_HAVE_KERNEL_LZO=y -# CONFIG_KERNEL_GZIP is not set -# CONFIG_KERNEL_BZIP2 is not set -CONFIG_KERNEL_LZMA=y -# CONFIG_KERNEL_XZ is not set -# CONFIG_KERNEL_LZO is not set -# CONFIG_SWAP is not set -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_TASKSTATS is not set -# CONFIG_AUDIT is not set -CONFIG_HAVE_GENERIC_HARDIRQS=y - -# -# IRQ subsystem -# -CONFIG_GENERIC_HARDIRQS=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -# CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED is not set -CONFIG_HAVE_SPARSE_IRQ=y -CONFIG_GENERIC_IRQ_PROBE=y -# CONFIG_GENERIC_PENDING_IRQ is not set -# CONFIG_AUTO_IRQ_AFFINITY is not set -# CONFIG_IRQ_PER_CPU is not set -# CONFIG_HARDIRQS_SW_RESEND is not set -# CONFIG_SPARSE_IRQ is not set - -# -# RCU Subsystem -# -CONFIG_TINY_RCU=y -# CONFIG_PREEMPT_RCU is not set -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=12 -CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y -# CONFIG_NAMESPACES is not set -# CONFIG_RELAY is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="rootfs.cpio" -CONFIG_INITRAMFS_ROOT_UID=0 -CONFIG_INITRAMFS_ROOT_GID=0 -# CONFIG_RD_GZIP is not set -# CONFIG_RD_BZIP2 is not set -CONFIG_RD_LZMA=y -# CONFIG_RD_LZO is not set -CONFIG_INITRAMFS_COMPRESSION_NONE=y -# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y -CONFIG_EMBEDDED=y -# CONFIG_UID16 is not set -# CONFIG_SYSCTL_SYSCALL is not set -# CONFIG_KALLSYMS is not set -# CONFIG_HOTPLUG is not set -CONFIG_PRINTK=y -# CONFIG_BUG is not set -# CONFIG_ELF_CORE is not set -CONFIG_PCSPKR_PLATFORM=y -# CONFIG_BASE_FULL is not set -CONFIG_FUTEX=y -# CONFIG_EPOLL is not set -# CONFIG_SIGNALFD is not set -# CONFIG_TIMERFD is not set -# CONFIG_EVENTFD is not set -# CONFIG_SHMEM is not set -# CONFIG_AIO is not set -CONFIG_HAVE_PERF_EVENTS=y - -# -# Kernel Performance Events And Counters -# -CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set -# CONFIG_VM_EVENT_COUNTERS is not set -CONFIG_COMPAT_BRK=y -# CONFIG_SLAB is not set -# CONFIG_SLUB is not set -CONFIG_SLOB=y -# CONFIG_PROFILING is not set -CONFIG_HAVE_OPROFILE=y -# CONFIG_JUMP_LABEL is not set -CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y -CONFIG_HAVE_IOREMAP_PROT=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_OPTPROBES=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_DMA_ATTRS=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_DMA_API_DEBUG=y -CONFIG_HAVE_HW_BREAKPOINT=y -CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y -CONFIG_HAVE_USER_RETURN_NOTIFIER=y -CONFIG_HAVE_PERF_EVENTS_NMI=y -CONFIG_HAVE_ARCH_JUMP_LABEL=y - -# -# GCOV-based kernel profiling -# -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=1 -# CONFIG_MODULES is not set -CONFIG_BLOCK=y -# CONFIG_LBDAF is not set -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_BLK_DEV_INTEGRITY is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -# CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_IOSCHED_CFQ is not set -CONFIG_DEFAULT_NOOP=y -CONFIG_DEFAULT_IOSCHED="noop" -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set -CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set -CONFIG_INLINE_READ_UNLOCK=y -# CONFIG_INLINE_READ_UNLOCK_BH is not set -CONFIG_INLINE_READ_UNLOCK_IRQ=y -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set -CONFIG_INLINE_WRITE_UNLOCK=y -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set -CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set -# CONFIG_MUTEX_SPIN_ON_OWNER is not set -# CONFIG_FREEZER is not set - -# -# Processor type and features -# -# CONFIG_NO_HZ is not set -# CONFIG_HIGH_RES_TIMERS is not set -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -# CONFIG_SMP is not set -# CONFIG_X86_EXTENDED_PLATFORM is not set -CONFIG_SCHED_OMIT_FRAME_POINTER=y -# CONFIG_PARAVIRT_GUEST is not set -CONFIG_NO_BOOTMEM=y -# CONFIG_MEMTEST is not set -CONFIG_M386=y -# CONFIG_M486 is not set -# CONFIG_M586 is not set -# CONFIG_M586TSC is not set -# CONFIG_M586MMX is not set -# CONFIG_M686 is not set -# CONFIG_MPENTIUMII is not set -# CONFIG_MPENTIUMIII is not set -# CONFIG_MPENTIUMM is not set -# CONFIG_MPENTIUM4 is not set -# CONFIG_MK6 is not set -# CONFIG_MK7 is not set -# CONFIG_MK8 is not set -# CONFIG_MCRUSOE is not set -# CONFIG_MEFFICEON is not set -# CONFIG_MWINCHIPC6 is not set -# CONFIG_MWINCHIP3D is not set -# CONFIG_MGEODEGX1 is not set -# CONFIG_MGEODE_LX is not set -# CONFIG_MCYRIXIII is not set -# CONFIG_MVIAC3_2 is not set -# CONFIG_MVIAC7 is not set -# CONFIG_MCORE2 is not set -# CONFIG_MATOM is not set -# CONFIG_X86_GENERIC is not set -CONFIG_X86_CPU=y -CONFIG_X86_INTERNODE_CACHE_SHIFT=4 -# CONFIG_X86_CMPXCHG is not set -CONFIG_X86_L1_CACHE_SHIFT=4 -# CONFIG_X86_PPRO_FENCE is not set -CONFIG_X86_F00F_BUG=y -CONFIG_X86_INVD_BUG=y -CONFIG_X86_MINIMUM_CPU_FAMILY=3 -# CONFIG_PROCESSOR_SELECT is not set -CONFIG_CPU_SUP_INTEL=y -CONFIG_CPU_SUP_CYRIX_32=y -CONFIG_CPU_SUP_AMD=y -CONFIG_CPU_SUP_CENTAUR=y -CONFIG_CPU_SUP_TRANSMETA_32=y -CONFIG_CPU_SUP_UMC_32=y -# CONFIG_HPET_TIMER is not set -# CONFIG_DMI is not set -# CONFIG_IOMMU_HELPER is not set -# CONFIG_IOMMU_API is not set -CONFIG_NR_CPUS=1 -# CONFIG_IRQ_TIME_ACCOUNTING is not set -CONFIG_PREEMPT_NONE=y -# CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set -# CONFIG_X86_UP_APIC is not set -# CONFIG_X86_MCE is not set -# CONFIG_VM86 is not set -# CONFIG_TOSHIBA is not set -# CONFIG_I8K is not set -# CONFIG_X86_REBOOTFIXUPS is not set -# CONFIG_MICROCODE is not set -# CONFIG_X86_MSR is not set -# CONFIG_X86_CPUID is not set -CONFIG_NOHIGHMEM=y -# CONFIG_HIGHMEM4G is not set -CONFIG_VMSPLIT_3G=y -# CONFIG_VMSPLIT_3G_OPT is not set -# CONFIG_VMSPLIT_2G is not set -# CONFIG_VMSPLIT_2G_OPT is not set -# CONFIG_VMSPLIT_1G is not set -CONFIG_PAGE_OFFSET=0xC0000000 -# CONFIG_X86_PAE is not set -# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set -# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set -CONFIG_ARCH_FLATMEM_ENABLE=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SELECT_MEMORY_MODEL=y -CONFIG_ILLEGAL_POINTER_VALUE=0 -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -CONFIG_SPARSEMEM_STATIC=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_PHYS_ADDR_T_64BIT is not set -CONFIG_ZONE_DMA_FLAG=1 -CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y -# CONFIG_KSM is not set -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -CONFIG_NEED_PER_CPU_KM=y -# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set -CONFIG_X86_RESERVE_LOW=64 -CONFIG_MATH_EMULATION=y -# CONFIG_MTRR is not set -# CONFIG_SECCOMP is not set -# CONFIG_CC_STACKPROTECTOR is not set -CONFIG_HZ_100=y -# CONFIG_HZ_250 is not set -# CONFIG_HZ_300 is not set -# CONFIG_HZ_1000 is not set -CONFIG_HZ=100 -# CONFIG_SCHED_HRTICK is not set -# CONFIG_KEXEC is not set -CONFIG_PHYSICAL_START=0x100000 -# CONFIG_RELOCATABLE is not set -CONFIG_PHYSICAL_ALIGN=0x100000 -# CONFIG_COMPAT_VDSO is not set -# CONFIG_CMDLINE_BOOL is not set - -# -# Power management and ACPI options -# -# CONFIG_PM is not set -# CONFIG_SFI is not set - -# -# CPU Frequency scaling -# -# CONFIG_CPU_FREQ is not set -# CONFIG_CPU_IDLE is not set - -# -# Bus options (PCI etc.) -# -# CONFIG_PCI is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set -CONFIG_ISA_DMA_API=y -CONFIG_ISA=y -# CONFIG_EISA is not set -# CONFIG_MCA is not set -# CONFIG_SCx200 is not set -# CONFIG_OLPC is not set -# CONFIG_OLPC_OPENFIRMWARE is not set - -# -# Executable file formats / Emulations -# -CONFIG_BINFMT_ELF=y -CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set -CONFIG_HAVE_ATOMIC_IOMAP=y -CONFIG_HAVE_TEXT_POKE_SMP=y -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -CONFIG_UNIX=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_FIB_HASH=y -# CONFIG_IP_PNP is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE_DEMUX is not set -# CONFIG_ARPD is not set -# CONFIG_SYN_COOKIES is not set -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -# CONFIG_INET_XFRM_TUNNEL is not set -# CONFIG_INET_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -# CONFIG_INET_XFRM_MODE_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_BEET is not set -# CONFIG_INET_LRO is not set -# CONFIG_INET_DIAG is not set -# CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_CUBIC=y -CONFIG_DEFAULT_TCP_CONG="cubic" -# CONFIG_TCP_MD5SIG is not set -# CONFIG_IPV6 is not set -# CONFIG_NETWORK_SECMARK is not set -# CONFIG_NETWORK_PHY_TIMESTAMPING is not set -# CONFIG_NETFILTER is not set -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_RDS is not set -# CONFIG_TIPC is not set -# CONFIG_ATM is not set -# CONFIG_L2TP is not set -# CONFIG_BRIDGE is not set -# CONFIG_NET_DSA is not set -# CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_PHONET is not set -# CONFIG_IEEE802154 is not set -# CONFIG_NET_SCHED is not set -# CONFIG_DCB is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_CAN is not set -# CONFIG_IRDA is not set -# CONFIG_BT is not set -# CONFIG_AF_RXRPC is not set -# CONFIG_WIRELESS is not set -# CONFIG_WIMAX is not set -# CONFIG_RFKILL is not set -# CONFIG_NET_9P is not set -# CONFIG_CAIF is not set -# CONFIG_CEPH_LIB is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=y -CONFIG_FIRMWARE_IN_KERNEL=y -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_SYS_HYPERVISOR is not set -# CONFIG_CONNECTOR is not set -# CONFIG_MTD is not set -# CONFIG_PARPORT is not set -# CONFIG_PNP is not set -CONFIG_BLK_DEV=y -CONFIG_BLK_DEV_FD=y -# CONFIG_BLK_DEV_XD is not set -# CONFIG_BLK_DEV_COW_COMMON is not set -# CONFIG_BLK_DEV_LOOP is not set - -# -# DRBD disabled because PROC_FS, INET or CONNECTOR not selected -# -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_RAM is not set -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -# CONFIG_BLK_DEV_HD is not set -# CONFIG_BLK_DEV_RBD is not set -# CONFIG_MISC_DEVICES is not set -CONFIG_HAVE_IDE=y -CONFIG_IDE=y - -# -# Please see Documentation/ide/ide.txt for help/info on IDE drives -# -# CONFIG_BLK_DEV_IDE_SATA is not set -# CONFIG_IDE_GD is not set -# CONFIG_BLK_DEV_IDECD is not set -# CONFIG_BLK_DEV_IDETAPE is not set -# CONFIG_IDE_TASK_IOCTL is not set -# CONFIG_IDE_PROC_FS is not set - -# -# IDE chipset support/bugfixes -# -CONFIG_IDE_GENERIC=y -# CONFIG_BLK_DEV_PLATFORM is not set -# CONFIG_BLK_DEV_CMD640 is not set - -# -# Other IDE chipsets support -# - -# -# Note: most of these also require special kernel boot parameters -# -# CONFIG_BLK_DEV_4DRIVES is not set -# CONFIG_BLK_DEV_ALI14XX is not set -# CONFIG_BLK_DEV_DTC2278 is not set -# CONFIG_BLK_DEV_HT6560B is not set -# CONFIG_BLK_DEV_QD65XX is not set -# CONFIG_BLK_DEV_UMC8672 is not set -# CONFIG_BLK_DEV_IDEDMA is not set - -# -# SCSI device support -# -CONFIG_SCSI_MOD=y -# CONFIG_RAID_ATTRS is not set -# CONFIG_SCSI is not set -# CONFIG_SCSI_DMA is not set -# CONFIG_SCSI_NETLINK is not set -# CONFIG_ATA is not set -# CONFIG_MD is not set -# CONFIG_MACINTOSH_DRIVERS is not set -CONFIG_NETDEVICES=y -# CONFIG_DUMMY is not set -# CONFIG_BONDING is not set -# CONFIG_MACVLAN is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set -# CONFIG_VETH is not set -# CONFIG_ARCNET is not set -# CONFIG_MII is not set -# CONFIG_PHYLIB is not set -CONFIG_NET_ETHERNET=y -CONFIG_NET_VENDOR_3COM=y -# CONFIG_EL1 is not set -# CONFIG_EL2 is not set -# CONFIG_ELPLUS is not set -# CONFIG_EL16 is not set -CONFIG_EL3=y -# CONFIG_3C515 is not set -# CONFIG_LANCE is not set -# CONFIG_NET_VENDOR_SMC is not set -# CONFIG_ETHOC is not set -# CONFIG_NET_VENDOR_RACAL is not set -# CONFIG_DNET is not set -# CONFIG_AT1700 is not set -# CONFIG_DEPCA is not set -# CONFIG_HP100 is not set -CONFIG_NET_ISA=y -# CONFIG_E2100 is not set -# CONFIG_EWRK3 is not set -# CONFIG_EEXPRESS is not set -# CONFIG_EEXPRESS_PRO is not set -# CONFIG_HPLAN_PLUS is not set -# CONFIG_HPLAN is not set -# CONFIG_LP486E is not set -# CONFIG_ETH16I is not set -CONFIG_NE2000=y -# CONFIG_ZNET is not set -# CONFIG_SEEQ8005 is not set -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -# CONFIG_NET_PCI is not set -# CONFIG_B44 is not set -# CONFIG_CS89x0 is not set -# CONFIG_KS8851_MLL is not set -# CONFIG_NETDEV_1000 is not set -# CONFIG_NETDEV_10000 is not set -# CONFIG_TR is not set -# CONFIG_WLAN is not set - -# -# Enable WiMAX (Networking options) to see the WiMAX drivers -# -# CONFIG_WAN is not set - -# -# CAIF transport drivers -# -CONFIG_PPP=y -# CONFIG_PPP_MULTILINK is not set -# CONFIG_PPP_FILTER is not set -CONFIG_PPP_ASYNC=y -# CONFIG_PPP_SYNC_TTY is not set -CONFIG_PPP_DEFLATE=y -# CONFIG_PPP_BSDCOMP is not set -# CONFIG_PPP_MPPE is not set -CONFIG_PPPOE=y -# CONFIG_SLIP is not set -CONFIG_SLHC=y -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -# CONFIG_ISDN is not set -# CONFIG_PHONE is not set - -# -# Input device support -# -CONFIG_INPUT=y -# CONFIG_INPUT_FF_MEMLESS is not set -# CONFIG_INPUT_POLLDEV is not set -# CONFIG_INPUT_SPARSEKMAP is not set - -# -# Userland interfaces -# -# CONFIG_INPUT_MOUSEDEV is not set -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ATKBD=y -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_OPENCORES is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_XTKBD is not set -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -# CONFIG_INPUT_MISC is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_SERIO_I8042=y -# CONFIG_SERIO_SERPORT is not set -# CONFIG_SERIO_CT82C710 is not set -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set -# CONFIG_SERIO_ALTERA_PS2 is not set -# CONFIG_SERIO_PS2MULT is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set -# CONFIG_DEVKMEM is not set -# CONFIG_SERIAL_NONSTANDARD is not set -# CONFIG_N_GSM is not set - -# -# Serial drivers -# -CONFIG_SERIAL_8250=y -# CONFIG_SERIAL_8250_CONSOLE is not set -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_SERIAL_8250_NR_UARTS=2 -CONFIG_SERIAL_8250_RUNTIME_UARTS=2 -# CONFIG_SERIAL_8250_EXTENDED is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_CORE=y -# CONFIG_SERIAL_TIMBERDALE is not set -# CONFIG_SERIAL_ALTERA_JTAGUART is not set -# CONFIG_SERIAL_ALTERA_UART is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_TTY_PRINTK is not set -# CONFIG_IPMI_HANDLER is not set -# CONFIG_HW_RANDOM is not set -# CONFIG_NVRAM is not set -# CONFIG_RTC is not set -# CONFIG_GEN_RTC is not set -# CONFIG_DTLK is not set -# CONFIG_R3964 is not set -# CONFIG_MWAVE is not set -# CONFIG_PC8736x_GPIO is not set -# CONFIG_NSC_GPIO is not set -# CONFIG_CS5535_GPIO is not set -# CONFIG_RAW_DRIVER is not set -# CONFIG_HANGCHECK_TIMER is not set -# CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set -CONFIG_DEVPORT=y -# CONFIG_RAMOOPS is not set -# CONFIG_I2C is not set -# CONFIG_SPI is not set - -# -# PPS support -# -# CONFIG_PPS is not set -CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -# CONFIG_GPIOLIB is not set -# CONFIG_W1 is not set -# CONFIG_POWER_SUPPLY is not set -# CONFIG_HWMON is not set -# CONFIG_THERMAL is not set -# CONFIG_WATCHDOG is not set -CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# -# CONFIG_SSB is not set -# CONFIG_MFD_SUPPORT is not set -# CONFIG_REGULATOR is not set -# CONFIG_MEDIA_SUPPORT is not set - -# -# Graphics support -# -# CONFIG_DRM is not set -# CONFIG_VGASTATE is not set -# CONFIG_VIDEO_OUTPUT_CONTROL is not set -# CONFIG_FB is not set -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set - -# -# Display device support -# -# CONFIG_DISPLAY_SUPPORT is not set - -# -# Console display driver support -# -CONFIG_VGA_CONSOLE=y -# CONFIG_VGACON_SOFT_SCROLLBACK is not set -# CONFIG_MDA_CONSOLE is not set -CONFIG_DUMMY_CONSOLE=y -# CONFIG_SOUND is not set -# CONFIG_HID_SUPPORT is not set -# CONFIG_USB_SUPPORT is not set -# CONFIG_MMC is not set -# CONFIG_MEMSTICK is not set -# CONFIG_NEW_LEDS is not set -# CONFIG_ACCESSIBILITY is not set -# CONFIG_EDAC is not set -# CONFIG_RTC_CLASS is not set -# CONFIG_DMADEVICES is not set -# CONFIG_AUXDISPLAY is not set -# CONFIG_UIO is not set -# CONFIG_STAGING is not set -# CONFIG_X86_PLATFORM_DEVICES is not set - -# -# Firmware Drivers -# -# CONFIG_EDD is not set -# CONFIG_FIRMWARE_MEMMAP is not set -# CONFIG_DELL_RBU is not set -# CONFIG_DCDBAS is not set -# CONFIG_ISCSI_IBFT_FIND is not set - -# -# File systems -# -# CONFIG_EXT2_FS is not set -CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -# CONFIG_EXT3_FS_XATTR is not set -# CONFIG_EXT4_FS is not set -CONFIG_JBD=y -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set -# CONFIG_XFS_FS is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_NILFS2_FS is not set -CONFIG_FILE_LOCKING=y -# CONFIG_FSNOTIFY is not set -# CONFIG_DNOTIFY is not set -# CONFIG_INOTIFY_USER is not set -# CONFIG_FANOTIFY is not set -# CONFIG_QUOTA is not set -# CONFIG_QUOTACTL is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_FUSE_FS is not set - -# -# Caches -# -# CONFIG_FSCACHE is not set - -# -# CD-ROM/DVD Filesystems -# -# CONFIG_ISO9660_FS is not set -# CONFIG_UDF_FS is not set - -# -# DOS/FAT/NT Filesystems -# -# CONFIG_MSDOS_FS is not set -# CONFIG_VFAT_FS is not set -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -# CONFIG_PROC_KCORE is not set -CONFIG_PROC_SYSCTL=y -# CONFIG_PROC_PAGE_MONITOR is not set -# CONFIG_SYSFS is not set -# CONFIG_HUGETLBFS is not set -# CONFIG_HUGETLB_PAGE is not set -# CONFIG_MISC_FILESYSTEMS is not set -# CONFIG_NETWORK_FILESYSTEMS is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y -# CONFIG_NLS is not set - -# -# Kernel hacking -# -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -# CONFIG_PRINTK_TIME is not set -# CONFIG_ENABLE_WARN_DEPRECATED is not set -# CONFIG_ENABLE_MUST_CHECK is not set -CONFIG_FRAME_WARN=1024 -# CONFIG_MAGIC_SYSRQ is not set -# CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_KERNEL is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set -CONFIG_BKL=y -# CONFIG_SPARSE_RCU_POINTER is not set -# CONFIG_DEBUG_MEMORY_INIT is not set -CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set -CONFIG_USER_STACKTRACE_SUPPORT=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y -CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_ATOMIC64_SELFTEST is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_HAVE_ARCH_KMEMCHECK=y -# CONFIG_STRICT_DEVMEM is not set -# CONFIG_X86_VERBOSE_BOOTUP is not set -# CONFIG_EARLY_PRINTK is not set -# CONFIG_DOUBLEFAULT is not set -# CONFIG_IOMMU_STRESS is not set -CONFIG_HAVE_MMIOTRACE_SUPPORT=y -CONFIG_IO_DELAY_TYPE_0X80=0 -CONFIG_IO_DELAY_TYPE_0XED=1 -CONFIG_IO_DELAY_TYPE_UDELAY=2 -CONFIG_IO_DELAY_TYPE_NONE=3 -CONFIG_IO_DELAY_0X80=y -# CONFIG_IO_DELAY_0XED is not set -# CONFIG_IO_DELAY_UDELAY is not set -# CONFIG_IO_DELAY_NONE is not set -CONFIG_DEFAULT_IO_DELAY_TYPE=0 -CONFIG_OPTIMIZE_INLINING=y - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITYFS is not set -CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_DEFAULT_SECURITY="" -# CONFIG_CRYPTO is not set -CONFIG_HAVE_KVM=y -# CONFIG_VIRTUALIZATION is not set -# CONFIG_BINARY_PRINTF is not set - -# -# Library routines -# -CONFIG_BITREVERSE=y -CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_GENERIC_FIND_NEXT_BIT=y -CONFIG_GENERIC_FIND_LAST_BIT=y -CONFIG_CRC_CCITT=y -# CONFIG_CRC16 is not set -# CONFIG_CRC_T10DIF is not set -# CONFIG_CRC_ITU_T is not set -CONFIG_CRC32=y -# CONFIG_CRC7 is not set -# CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -# CONFIG_XZ_DEC is not set -# CONFIG_XZ_DEC_BCJ is not set -CONFIG_DECOMPRESS_LZMA=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y -CONFIG_NLATTR=y diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/linux-2.6.37-slitaz.config-i486-lguest --- a/kernel-modular/stuff/linux-2.6.37-slitaz.config-i486-lguest Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,854 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux/i386 2.6.37 Kernel Configuration -# Tue May 3 12:17:51 2011 -# -# CONFIG_64BIT is not set -CONFIG_X86_32=y -# CONFIG_X86_64 is not set -CONFIG_X86=y -CONFIG_INSTRUCTION_DECODER=y -CONFIG_OUTPUT_FORMAT="elf32-i386" -CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_CLOCKSOURCE_WATCHDOG=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_HAVE_LATENCYTOP_SUPPORT=y -CONFIG_MMU=y -CONFIG_ZONE_DMA=y -# CONFIG_NEED_DMA_MAP_STATE is not set -CONFIG_NEED_SG_DMA_LENGTH=y -CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_IOMAP=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_ARCH_MAY_HAVE_PC_FDC=y -# CONFIG_RWSEM_GENERIC_SPINLOCK is not set -CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -# CONFIG_GENERIC_TIME_VSYSCALL is not set -CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HAS_DEFAULT_IDLE=y -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y -CONFIG_HAVE_SETUP_PER_CPU_AREA=y -CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y -CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -# CONFIG_ZONE_DMA32 is not set -CONFIG_ARCH_POPULATES_NODE_MAP=y -# CONFIG_AUDIT_ARCH is not set -CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y -CONFIG_X86_32_LAZY_GS=y -CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" -CONFIG_KTIME_SCALAR=y -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y -CONFIG_HAVE_IRQ_WORK=y -CONFIG_IRQ_WORK=y - -# -# General setup -# -CONFIG_EXPERIMENTAL=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_CROSS_COMPILE="" -CONFIG_LOCALVERSION="-slitaz" -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_HAVE_KERNEL_BZIP2=y -CONFIG_HAVE_KERNEL_LZMA=y -CONFIG_HAVE_KERNEL_XZ=y -CONFIG_HAVE_KERNEL_LZO=y -# CONFIG_KERNEL_GZIP is not set -# CONFIG_KERNEL_BZIP2 is not set -CONFIG_KERNEL_LZMA=y -# CONFIG_KERNEL_XZ is not set -# CONFIG_KERNEL_LZO is not set -# CONFIG_SWAP is not set -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_TASKSTATS is not set -# CONFIG_AUDIT is not set -CONFIG_HAVE_GENERIC_HARDIRQS=y - -# -# IRQ subsystem -# -CONFIG_GENERIC_HARDIRQS=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -# CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED is not set -CONFIG_HAVE_SPARSE_IRQ=y -CONFIG_GENERIC_IRQ_PROBE=y -# CONFIG_GENERIC_PENDING_IRQ is not set -# CONFIG_AUTO_IRQ_AFFINITY is not set -# CONFIG_IRQ_PER_CPU is not set -# CONFIG_HARDIRQS_SW_RESEND is not set -# CONFIG_SPARSE_IRQ is not set - -# -# RCU Subsystem -# -CONFIG_TINY_RCU=y -# CONFIG_PREEMPT_RCU is not set -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=12 -CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y -# CONFIG_NAMESPACES is not set -# CONFIG_RELAY is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="rootfs.cpio" -CONFIG_INITRAMFS_ROOT_UID=0 -CONFIG_INITRAMFS_ROOT_GID=0 -# CONFIG_RD_GZIP is not set -# CONFIG_RD_BZIP2 is not set -CONFIG_RD_LZMA=y -# CONFIG_RD_LZO is not set -CONFIG_INITRAMFS_COMPRESSION_NONE=y -# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y -CONFIG_EMBEDDED=y -# CONFIG_UID16 is not set -# CONFIG_SYSCTL_SYSCALL is not set -# CONFIG_KALLSYMS is not set -# CONFIG_HOTPLUG is not set -CONFIG_PRINTK=y -# CONFIG_BUG is not set -# CONFIG_ELF_CORE is not set -CONFIG_PCSPKR_PLATFORM=y -# CONFIG_BASE_FULL is not set -CONFIG_FUTEX=y -# CONFIG_EPOLL is not set -# CONFIG_SIGNALFD is not set -# CONFIG_TIMERFD is not set -# CONFIG_EVENTFD is not set -# CONFIG_SHMEM is not set -# CONFIG_AIO is not set -CONFIG_HAVE_PERF_EVENTS=y - -# -# Kernel Performance Events And Counters -# -CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set -# CONFIG_VM_EVENT_COUNTERS is not set -CONFIG_COMPAT_BRK=y -# CONFIG_SLAB is not set -# CONFIG_SLUB is not set -CONFIG_SLOB=y -# CONFIG_PROFILING is not set -CONFIG_HAVE_OPROFILE=y -# CONFIG_JUMP_LABEL is not set -CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y -CONFIG_HAVE_IOREMAP_PROT=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_OPTPROBES=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_DMA_ATTRS=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_DMA_API_DEBUG=y -CONFIG_HAVE_HW_BREAKPOINT=y -CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y -CONFIG_HAVE_USER_RETURN_NOTIFIER=y -CONFIG_HAVE_PERF_EVENTS_NMI=y -CONFIG_HAVE_ARCH_JUMP_LABEL=y - -# -# GCOV-based kernel profiling -# -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=1 -# CONFIG_MODULES is not set -CONFIG_BLOCK=y -# CONFIG_LBDAF is not set -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_BLK_DEV_INTEGRITY is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -# CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_IOSCHED_CFQ is not set -CONFIG_DEFAULT_NOOP=y -CONFIG_DEFAULT_IOSCHED="noop" -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set -CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set -CONFIG_INLINE_READ_UNLOCK=y -# CONFIG_INLINE_READ_UNLOCK_BH is not set -CONFIG_INLINE_READ_UNLOCK_IRQ=y -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set -CONFIG_INLINE_WRITE_UNLOCK=y -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set -CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set -# CONFIG_MUTEX_SPIN_ON_OWNER is not set -# CONFIG_FREEZER is not set - -# -# Processor type and features -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -# CONFIG_HIGH_RES_TIMERS is not set -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -# CONFIG_SMP is not set -# CONFIG_X86_EXTENDED_PLATFORM is not set -CONFIG_SCHED_OMIT_FRAME_POINTER=y -CONFIG_PARAVIRT_GUEST=y -# CONFIG_XEN_PRIVILEGED_GUEST is not set -CONFIG_KVM_CLOCK=y -CONFIG_KVM_GUEST=y -CONFIG_LGUEST_GUEST=y -CONFIG_PARAVIRT=y -CONFIG_PARAVIRT_CLOCK=y -CONFIG_NO_BOOTMEM=y -# CONFIG_MEMTEST is not set -# CONFIG_M386 is not set -# CONFIG_M486 is not set -# CONFIG_M586 is not set -# CONFIG_M586TSC is not set -# CONFIG_M586MMX is not set -# CONFIG_M686 is not set -# CONFIG_MPENTIUMII is not set -CONFIG_MPENTIUMIII=y -# CONFIG_MPENTIUMM is not set -# CONFIG_MPENTIUM4 is not set -# CONFIG_MK6 is not set -# CONFIG_MK7 is not set -# CONFIG_MK8 is not set -# CONFIG_MCRUSOE is not set -# CONFIG_MEFFICEON is not set -# CONFIG_MWINCHIPC6 is not set -# CONFIG_MWINCHIP3D is not set -# CONFIG_MGEODEGX1 is not set -# CONFIG_MGEODE_LX is not set -# CONFIG_MCYRIXIII is not set -# CONFIG_MVIAC3_2 is not set -# CONFIG_MVIAC7 is not set -# CONFIG_MCORE2 is not set -# CONFIG_MATOM is not set -CONFIG_X86_GENERIC=y -CONFIG_X86_CPU=y -CONFIG_X86_INTERNODE_CACHE_SHIFT=6 -CONFIG_X86_CMPXCHG=y -CONFIG_X86_L1_CACHE_SHIFT=6 -CONFIG_X86_XADD=y -CONFIG_X86_WP_WORKS_OK=y -CONFIG_X86_INVLPG=y -CONFIG_X86_BSWAP=y -CONFIG_X86_POPAD_OK=y -CONFIG_X86_INTEL_USERCOPY=y -CONFIG_X86_USE_PPRO_CHECKSUM=y -CONFIG_X86_TSC=y -CONFIG_X86_CMPXCHG64=y -CONFIG_X86_CMOV=y -CONFIG_X86_MINIMUM_CPU_FAMILY=5 -CONFIG_X86_DEBUGCTLMSR=y -# CONFIG_PROCESSOR_SELECT is not set -CONFIG_CPU_SUP_INTEL=y -CONFIG_CPU_SUP_CYRIX_32=y -CONFIG_CPU_SUP_AMD=y -CONFIG_CPU_SUP_CENTAUR=y -CONFIG_CPU_SUP_TRANSMETA_32=y -CONFIG_CPU_SUP_UMC_32=y -# CONFIG_HPET_TIMER is not set -# CONFIG_DMI is not set -# CONFIG_IOMMU_HELPER is not set -# CONFIG_IOMMU_API is not set -CONFIG_NR_CPUS=1 -# CONFIG_IRQ_TIME_ACCOUNTING is not set -CONFIG_PREEMPT_NONE=y -# CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set -# CONFIG_X86_UP_APIC is not set -# CONFIG_X86_MCE is not set -# CONFIG_VM86 is not set -# CONFIG_TOSHIBA is not set -# CONFIG_I8K is not set -# CONFIG_X86_REBOOTFIXUPS is not set -# CONFIG_MICROCODE is not set -# CONFIG_X86_MSR is not set -# CONFIG_X86_CPUID is not set -CONFIG_NOHIGHMEM=y -# CONFIG_HIGHMEM4G is not set -# CONFIG_HIGHMEM64G is not set -CONFIG_VMSPLIT_3G=y -# CONFIG_VMSPLIT_3G_OPT is not set -# CONFIG_VMSPLIT_2G is not set -# CONFIG_VMSPLIT_2G_OPT is not set -# CONFIG_VMSPLIT_1G is not set -CONFIG_PAGE_OFFSET=0xC0000000 -# CONFIG_X86_PAE is not set -# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set -# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set -CONFIG_ARCH_FLATMEM_ENABLE=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SELECT_MEMORY_MODEL=y -CONFIG_ILLEGAL_POINTER_VALUE=0 -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -CONFIG_SPARSEMEM_STATIC=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_PHYS_ADDR_T_64BIT is not set -CONFIG_ZONE_DMA_FLAG=1 -CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y -# CONFIG_KSM is not set -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -CONFIG_NEED_PER_CPU_KM=y -# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set -CONFIG_X86_RESERVE_LOW=64 -# CONFIG_MATH_EMULATION is not set -# CONFIG_MTRR is not set -# CONFIG_SECCOMP is not set -# CONFIG_CC_STACKPROTECTOR is not set -CONFIG_HZ_100=y -# CONFIG_HZ_250 is not set -# CONFIG_HZ_300 is not set -# CONFIG_HZ_1000 is not set -CONFIG_HZ=100 -# CONFIG_SCHED_HRTICK is not set -# CONFIG_KEXEC is not set -CONFIG_PHYSICAL_START=0x100000 -# CONFIG_RELOCATABLE is not set -CONFIG_PHYSICAL_ALIGN=0x100000 -# CONFIG_COMPAT_VDSO is not set -# CONFIG_CMDLINE_BOOL is not set - -# -# Power management and ACPI options -# -# CONFIG_PM is not set -# CONFIG_SFI is not set - -# -# CPU Frequency scaling -# -# CONFIG_CPU_FREQ is not set -# CONFIG_CPU_IDLE is not set - -# -# Bus options (PCI etc.) -# -# CONFIG_PCI is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set -CONFIG_ISA_DMA_API=y -# CONFIG_ISA is not set -# CONFIG_MCA is not set -# CONFIG_SCx200 is not set -# CONFIG_OLPC is not set -# CONFIG_OLPC_OPENFIRMWARE is not set - -# -# Executable file formats / Emulations -# -CONFIG_BINFMT_ELF=y -CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set -CONFIG_HAVE_ATOMIC_IOMAP=y -CONFIG_HAVE_TEXT_POKE_SMP=y -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -CONFIG_UNIX=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_FIB_HASH=y -# CONFIG_IP_PNP is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE_DEMUX is not set -# CONFIG_ARPD is not set -# CONFIG_SYN_COOKIES is not set -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -# CONFIG_INET_XFRM_TUNNEL is not set -# CONFIG_INET_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -# CONFIG_INET_XFRM_MODE_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_BEET is not set -# CONFIG_INET_LRO is not set -# CONFIG_INET_DIAG is not set -# CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_CUBIC=y -CONFIG_DEFAULT_TCP_CONG="cubic" -# CONFIG_TCP_MD5SIG is not set -# CONFIG_IPV6 is not set -# CONFIG_NETWORK_SECMARK is not set -# CONFIG_NETWORK_PHY_TIMESTAMPING is not set -# CONFIG_NETFILTER is not set -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_RDS is not set -# CONFIG_TIPC is not set -# CONFIG_ATM is not set -# CONFIG_L2TP is not set -# CONFIG_BRIDGE is not set -# CONFIG_NET_DSA is not set -# CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_PHONET is not set -# CONFIG_IEEE802154 is not set -# CONFIG_NET_SCHED is not set -# CONFIG_DCB is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_CAN is not set -# CONFIG_IRDA is not set -# CONFIG_BT is not set -# CONFIG_AF_RXRPC is not set -# CONFIG_WIRELESS is not set -# CONFIG_WIMAX is not set -# CONFIG_RFKILL is not set -# CONFIG_NET_9P is not set -# CONFIG_CAIF is not set -# CONFIG_CEPH_LIB is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=y -CONFIG_FIRMWARE_IN_KERNEL=y -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_SYS_HYPERVISOR is not set -# CONFIG_CONNECTOR is not set -# CONFIG_MTD is not set -# CONFIG_PARPORT is not set -CONFIG_BLK_DEV=y -# CONFIG_BLK_DEV_FD is not set -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -# CONFIG_BLK_DEV_CRYPTOLOOP is not set - -# -# DRBD disabled because PROC_FS, INET or CONNECTOR not selected -# -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_RAM is not set -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -CONFIG_VIRTIO_BLK=y -# CONFIG_BLK_DEV_HD is not set -# CONFIG_BLK_DEV_RBD is not set -# CONFIG_MISC_DEVICES is not set -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set - -# -# SCSI device support -# -CONFIG_SCSI_MOD=y -# CONFIG_RAID_ATTRS is not set -# CONFIG_SCSI is not set -# CONFIG_SCSI_DMA is not set -# CONFIG_SCSI_NETLINK is not set -# CONFIG_ATA is not set -# CONFIG_MD is not set -# CONFIG_MACINTOSH_DRIVERS is not set -CONFIG_NETDEVICES=y -# CONFIG_DUMMY is not set -# CONFIG_BONDING is not set -# CONFIG_MACVLAN is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set -# CONFIG_VETH is not set -# CONFIG_MII is not set -# CONFIG_PHYLIB is not set -# CONFIG_NET_ETHERNET is not set -# CONFIG_NETDEV_1000 is not set -# CONFIG_NETDEV_10000 is not set -# CONFIG_WLAN is not set - -# -# Enable WiMAX (Networking options) to see the WiMAX drivers -# -# CONFIG_WAN is not set - -# -# CAIF transport drivers -# -# CONFIG_PPP is not set -# CONFIG_SLIP is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -CONFIG_VIRTIO_NET=y -# CONFIG_ISDN is not set -# CONFIG_PHONE is not set - -# -# Input device support -# -CONFIG_INPUT=y -# CONFIG_INPUT_FF_MEMLESS is not set -# CONFIG_INPUT_POLLDEV is not set -# CONFIG_INPUT_SPARSEKMAP is not set - -# -# Userland interfaces -# -# CONFIG_INPUT_MOUSEDEV is not set -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ATKBD=y -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_OPENCORES is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_XTKBD is not set -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -# CONFIG_INPUT_MISC is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_SERIO_I8042=y -# CONFIG_SERIO_SERPORT is not set -# CONFIG_SERIO_CT82C710 is not set -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set -# CONFIG_SERIO_ALTERA_PS2 is not set -# CONFIG_SERIO_PS2MULT is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set -# CONFIG_DEVKMEM is not set -# CONFIG_SERIAL_NONSTANDARD is not set -# CONFIG_N_GSM is not set - -# -# Serial drivers -# -CONFIG_SERIAL_8250=y -# CONFIG_SERIAL_8250_CONSOLE is not set -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_SERIAL_8250_NR_UARTS=2 -CONFIG_SERIAL_8250_RUNTIME_UARTS=2 -# CONFIG_SERIAL_8250_EXTENDED is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_CORE=y -# CONFIG_SERIAL_TIMBERDALE is not set -# CONFIG_SERIAL_ALTERA_JTAGUART is not set -# CONFIG_SERIAL_ALTERA_UART is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_TTY_PRINTK is not set -CONFIG_HVC_DRIVER=y -CONFIG_VIRTIO_CONSOLE=y -# CONFIG_IPMI_HANDLER is not set -# CONFIG_HW_RANDOM is not set -# CONFIG_NVRAM is not set -# CONFIG_RTC is not set -# CONFIG_GEN_RTC is not set -# CONFIG_R3964 is not set -# CONFIG_MWAVE is not set -# CONFIG_PC8736x_GPIO is not set -# CONFIG_NSC_GPIO is not set -# CONFIG_CS5535_GPIO is not set -# CONFIG_RAW_DRIVER is not set -# CONFIG_HANGCHECK_TIMER is not set -# CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set -# CONFIG_RAMOOPS is not set -# CONFIG_I2C is not set -# CONFIG_SPI is not set - -# -# PPS support -# -# CONFIG_PPS is not set -CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -# CONFIG_GPIOLIB is not set -# CONFIG_W1 is not set -# CONFIG_POWER_SUPPLY is not set -# CONFIG_HWMON is not set -# CONFIG_THERMAL is not set -# CONFIG_WATCHDOG is not set -CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# -# CONFIG_SSB is not set -# CONFIG_MFD_SUPPORT is not set -# CONFIG_REGULATOR is not set -# CONFIG_MEDIA_SUPPORT is not set - -# -# Graphics support -# -# CONFIG_DRM is not set -# CONFIG_VGASTATE is not set -# CONFIG_VIDEO_OUTPUT_CONTROL is not set -# CONFIG_FB is not set -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set - -# -# Display device support -# -# CONFIG_DISPLAY_SUPPORT is not set - -# -# Console display driver support -# -CONFIG_VGA_CONSOLE=y -# CONFIG_VGACON_SOFT_SCROLLBACK is not set -CONFIG_DUMMY_CONSOLE=y -# CONFIG_SOUND is not set -# CONFIG_HID_SUPPORT is not set -# CONFIG_USB_SUPPORT is not set -# CONFIG_MMC is not set -# CONFIG_MEMSTICK is not set -# CONFIG_NEW_LEDS is not set -# CONFIG_ACCESSIBILITY is not set -# CONFIG_EDAC is not set -# CONFIG_RTC_CLASS is not set -# CONFIG_DMADEVICES is not set -# CONFIG_AUXDISPLAY is not set -# CONFIG_UIO is not set -# CONFIG_STAGING is not set -# CONFIG_X86_PLATFORM_DEVICES is not set - -# -# Firmware Drivers -# -# CONFIG_EDD is not set -# CONFIG_FIRMWARE_MEMMAP is not set -# CONFIG_DELL_RBU is not set -# CONFIG_DCDBAS is not set -# CONFIG_ISCSI_IBFT_FIND is not set - -# -# File systems -# -# CONFIG_EXT2_FS is not set -CONFIG_EXT3_FS=y -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -# CONFIG_EXT3_FS_XATTR is not set -# CONFIG_EXT4_FS is not set -CONFIG_JBD=y -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set -# CONFIG_XFS_FS is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_NILFS2_FS is not set -CONFIG_FILE_LOCKING=y -# CONFIG_FSNOTIFY is not set -# CONFIG_DNOTIFY is not set -# CONFIG_INOTIFY_USER is not set -# CONFIG_FANOTIFY is not set -# CONFIG_QUOTA is not set -# CONFIG_QUOTACTL is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_FUSE_FS is not set - -# -# Caches -# -# CONFIG_FSCACHE is not set - -# -# CD-ROM/DVD Filesystems -# -# CONFIG_ISO9660_FS is not set -# CONFIG_UDF_FS is not set - -# -# DOS/FAT/NT Filesystems -# -# CONFIG_MSDOS_FS is not set -# CONFIG_VFAT_FS is not set -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -# CONFIG_PROC_KCORE is not set -CONFIG_PROC_SYSCTL=y -# CONFIG_PROC_PAGE_MONITOR is not set -# CONFIG_SYSFS is not set -# CONFIG_HUGETLBFS is not set -# CONFIG_HUGETLB_PAGE is not set -# CONFIG_MISC_FILESYSTEMS is not set -# CONFIG_NETWORK_FILESYSTEMS is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y -# CONFIG_NLS is not set - -# -# Kernel hacking -# -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -# CONFIG_PRINTK_TIME is not set -# CONFIG_ENABLE_WARN_DEPRECATED is not set -# CONFIG_ENABLE_MUST_CHECK is not set -CONFIG_FRAME_WARN=1024 -# CONFIG_MAGIC_SYSRQ is not set -# CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_KERNEL is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set -CONFIG_BKL=y -# CONFIG_SPARSE_RCU_POINTER is not set -# CONFIG_DEBUG_MEMORY_INIT is not set -CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set -CONFIG_USER_STACKTRACE_SUPPORT=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y -CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_ATOMIC64_SELFTEST is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_HAVE_ARCH_KMEMCHECK=y -# CONFIG_STRICT_DEVMEM is not set -# CONFIG_X86_VERBOSE_BOOTUP is not set -# CONFIG_EARLY_PRINTK is not set -# CONFIG_DOUBLEFAULT is not set -# CONFIG_IOMMU_STRESS is not set -CONFIG_HAVE_MMIOTRACE_SUPPORT=y -CONFIG_IO_DELAY_TYPE_0X80=0 -CONFIG_IO_DELAY_TYPE_0XED=1 -CONFIG_IO_DELAY_TYPE_UDELAY=2 -CONFIG_IO_DELAY_TYPE_NONE=3 -CONFIG_IO_DELAY_0X80=y -# CONFIG_IO_DELAY_0XED is not set -# CONFIG_IO_DELAY_UDELAY is not set -# CONFIG_IO_DELAY_NONE is not set -CONFIG_DEFAULT_IO_DELAY_TYPE=0 -CONFIG_OPTIMIZE_INLINING=y - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITYFS is not set -CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_DEFAULT_SECURITY="" -# CONFIG_CRYPTO is not set -CONFIG_HAVE_KVM=y -# CONFIG_VIRTUALIZATION is not set -CONFIG_VIRTIO=y -CONFIG_VIRTIO_RING=y -# CONFIG_BINARY_PRINTF is not set - -# -# Library routines -# -CONFIG_BITREVERSE=y -CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_GENERIC_FIND_NEXT_BIT=y -CONFIG_GENERIC_FIND_LAST_BIT=y -CONFIG_CRC_CCITT=y -# CONFIG_CRC16 is not set -# CONFIG_CRC_T10DIF is not set -# CONFIG_CRC_ITU_T is not set -CONFIG_CRC32=y -# CONFIG_CRC7 is not set -# CONFIG_LIBCRC32C is not set -# CONFIG_XZ_DEC is not set -# CONFIG_XZ_DEC_BCJ is not set -CONFIG_DECOMPRESS_LZMA=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y -CONFIG_NLATTR=y diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/linux-2.6.37-slitaz.config-i486-modular --- a/kernel-modular/stuff/linux-2.6.37-slitaz.config-i486-modular Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4735 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux/i386 2.6.37 Kernel Configuration -# Fri Feb 4 17:57:18 2011 -# -# CONFIG_64BIT is not set -CONFIG_X86_32=y -# CONFIG_X86_64 is not set -CONFIG_X86=y -CONFIG_INSTRUCTION_DECODER=y -CONFIG_OUTPUT_FORMAT="elf32-i386" -CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_CLOCKSOURCE_WATCHDOG=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_HAVE_LATENCYTOP_SUPPORT=y -CONFIG_MMU=y -CONFIG_ZONE_DMA=y -# CONFIG_NEED_DMA_MAP_STATE is not set -CONFIG_NEED_SG_DMA_LENGTH=y -CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_IOMAP=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_GPIO=y -CONFIG_ARCH_MAY_HAVE_PC_FDC=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -# CONFIG_GENERIC_TIME_VSYSCALL is not set -CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HAS_DEFAULT_IDLE=y -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y -CONFIG_HAVE_SETUP_PER_CPU_AREA=y -CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y -CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -# CONFIG_ZONE_DMA32 is not set -CONFIG_ARCH_POPULATES_NODE_MAP=y -# CONFIG_AUDIT_ARCH is not set -CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y -CONFIG_X86_32_LAZY_GS=y -CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" -CONFIG_KTIME_SCALAR=y -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y -CONFIG_HAVE_IRQ_WORK=y -CONFIG_IRQ_WORK=y - -# -# General setup -# -CONFIG_EXPERIMENTAL=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_CROSS_COMPILE="" -CONFIG_LOCALVERSION="-slitaz" -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_HAVE_KERNEL_BZIP2=y -CONFIG_HAVE_KERNEL_LZMA=y -CONFIG_HAVE_KERNEL_XZ=y -CONFIG_HAVE_KERNEL_LZO=y -# CONFIG_KERNEL_GZIP is not set -# CONFIG_KERNEL_BZIP2 is not set -CONFIG_KERNEL_LZMA=y -# CONFIG_KERNEL_XZ is not set -# CONFIG_KERNEL_LZO is not set -# CONFIG_SWAP is not set -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_TASKSTATS is not set -# CONFIG_AUDIT is not set -CONFIG_HAVE_GENERIC_HARDIRQS=y - -# -# IRQ subsystem -# -CONFIG_GENERIC_HARDIRQS=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -# CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED is not set -CONFIG_HAVE_SPARSE_IRQ=y -CONFIG_GENERIC_IRQ_PROBE=y -# CONFIG_GENERIC_PENDING_IRQ is not set -# CONFIG_AUTO_IRQ_AFFINITY is not set -# CONFIG_IRQ_PER_CPU is not set -# CONFIG_HARDIRQS_SW_RESEND is not set -# CONFIG_SPARSE_IRQ is not set - -# -# RCU Subsystem -# -CONFIG_TINY_RCU=y -# CONFIG_PREEMPT_RCU is not set -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=12 -CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y -# CONFIG_CGROUPS is not set -# CONFIG_NAMESPACES is not set -# CONFIG_SYSFS_DEPRECATED is not set -# CONFIG_RELAY is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="rootfs.cpio" -CONFIG_INITRAMFS_ROOT_UID=0 -CONFIG_INITRAMFS_ROOT_GID=0 -# CONFIG_RD_GZIP is not set -# CONFIG_RD_BZIP2 is not set -CONFIG_RD_LZMA=y -# CONFIG_RD_LZO is not set -CONFIG_INITRAMFS_COMPRESSION_NONE=y -# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set -# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y -CONFIG_EMBEDDED=y -# CONFIG_UID16 is not set -# CONFIG_SYSCTL_SYSCALL is not set -# CONFIG_KALLSYMS is not set -# CONFIG_HOTPLUG is not set -CONFIG_PRINTK=y -# CONFIG_BUG is not set -# CONFIG_ELF_CORE is not set -CONFIG_PCSPKR_PLATFORM=y -# CONFIG_BASE_FULL is not set -CONFIG_FUTEX=y -# CONFIG_EPOLL is not set -# CONFIG_SIGNALFD is not set -# CONFIG_TIMERFD is not set -CONFIG_EVENTFD=y -# CONFIG_SHMEM is not set -# CONFIG_AIO is not set -CONFIG_HAVE_PERF_EVENTS=y - -# -# Kernel Performance Events And Counters -# -CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set -# CONFIG_VM_EVENT_COUNTERS is not set -CONFIG_PCI_QUIRKS=y -CONFIG_COMPAT_BRK=y -# CONFIG_SLAB is not set -# CONFIG_SLUB is not set -CONFIG_SLOB=y -# CONFIG_PROFILING is not set -CONFIG_HAVE_OPROFILE=y -# CONFIG_KPROBES is not set -# CONFIG_JUMP_LABEL is not set -CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y -CONFIG_USER_RETURN_NOTIFIER=y -CONFIG_HAVE_IOREMAP_PROT=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_OPTPROBES=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_DMA_ATTRS=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_DMA_API_DEBUG=y -CONFIG_HAVE_HW_BREAKPOINT=y -CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y -CONFIG_HAVE_USER_RETURN_NOTIFIER=y -CONFIG_HAVE_PERF_EVENTS_NMI=y -CONFIG_HAVE_ARCH_JUMP_LABEL=y - -# -# GCOV-based kernel profiling -# -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=1 -CONFIG_MODULES=y -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_FORCE_UNLOAD is not set -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_BLOCK=y -# CONFIG_LBDAF is not set -CONFIG_BLK_DEV_BSG=y -# CONFIG_BLK_DEV_INTEGRITY is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -# CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_IOSCHED_CFQ is not set -CONFIG_DEFAULT_NOOP=y -CONFIG_DEFAULT_IOSCHED="noop" -CONFIG_PREEMPT_NOTIFIERS=y -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set -CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set -CONFIG_INLINE_READ_UNLOCK=y -# CONFIG_INLINE_READ_UNLOCK_BH is not set -CONFIG_INLINE_READ_UNLOCK_IRQ=y -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set -CONFIG_INLINE_WRITE_UNLOCK=y -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set -CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set -# CONFIG_MUTEX_SPIN_ON_OWNER is not set -# CONFIG_FREEZER is not set - -# -# Processor type and features -# -# CONFIG_NO_HZ is not set -# CONFIG_HIGH_RES_TIMERS is not set -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -# CONFIG_SMP is not set -# CONFIG_X86_EXTENDED_PLATFORM is not set -CONFIG_SCHED_OMIT_FRAME_POINTER=y -# CONFIG_PARAVIRT_GUEST is not set -CONFIG_NO_BOOTMEM=y -# CONFIG_MEMTEST is not set -CONFIG_M386=y -# CONFIG_M486 is not set -# CONFIG_M586 is not set -# CONFIG_M586TSC is not set -# CONFIG_M586MMX is not set -# CONFIG_M686 is not set -# CONFIG_MPENTIUMII is not set -# CONFIG_MPENTIUMIII is not set -# CONFIG_MPENTIUMM is not set -# CONFIG_MPENTIUM4 is not set -# CONFIG_MK6 is not set -# CONFIG_MK7 is not set -# CONFIG_MK8 is not set -# CONFIG_MCRUSOE is not set -# CONFIG_MEFFICEON is not set -# CONFIG_MWINCHIPC6 is not set -# CONFIG_MWINCHIP3D is not set -# CONFIG_MGEODEGX1 is not set -# CONFIG_MGEODE_LX is not set -# CONFIG_MCYRIXIII is not set -# CONFIG_MVIAC3_2 is not set -# CONFIG_MVIAC7 is not set -# CONFIG_MCORE2 is not set -# CONFIG_MATOM is not set -# CONFIG_X86_GENERIC is not set -CONFIG_X86_CPU=y -CONFIG_X86_INTERNODE_CACHE_SHIFT=4 -# CONFIG_X86_CMPXCHG is not set -CONFIG_X86_L1_CACHE_SHIFT=4 -# CONFIG_X86_PPRO_FENCE is not set -CONFIG_X86_F00F_BUG=y -CONFIG_X86_INVD_BUG=y -CONFIG_X86_MINIMUM_CPU_FAMILY=3 -# CONFIG_PROCESSOR_SELECT is not set -CONFIG_CPU_SUP_INTEL=y -CONFIG_CPU_SUP_CYRIX_32=y -CONFIG_CPU_SUP_AMD=y -CONFIG_CPU_SUP_CENTAUR=y -CONFIG_CPU_SUP_TRANSMETA_32=y -CONFIG_CPU_SUP_UMC_32=y -# CONFIG_HPET_TIMER is not set -# CONFIG_DMI is not set -# CONFIG_IOMMU_HELPER is not set -# CONFIG_IOMMU_API is not set -CONFIG_NR_CPUS=1 -# CONFIG_IRQ_TIME_ACCOUNTING is not set -CONFIG_PREEMPT_NONE=y -# CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set -# CONFIG_X86_UP_APIC is not set -# CONFIG_X86_MCE is not set -# CONFIG_VM86 is not set -# CONFIG_TOSHIBA is not set -# CONFIG_I8K is not set -# CONFIG_X86_REBOOTFIXUPS is not set -# CONFIG_MICROCODE is not set -# CONFIG_X86_MSR is not set -# CONFIG_X86_CPUID is not set -CONFIG_NOHIGHMEM=y -# CONFIG_HIGHMEM4G is not set -CONFIG_VMSPLIT_3G=y -# CONFIG_VMSPLIT_3G_OPT is not set -# CONFIG_VMSPLIT_2G is not set -# CONFIG_VMSPLIT_2G_OPT is not set -# CONFIG_VMSPLIT_1G is not set -CONFIG_PAGE_OFFSET=0xC0000000 -# CONFIG_X86_PAE is not set -# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set -# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set -CONFIG_ARCH_FLATMEM_ENABLE=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SELECT_MEMORY_MODEL=y -CONFIG_ILLEGAL_POINTER_VALUE=0 -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -CONFIG_SPARSEMEM_STATIC=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_PHYS_ADDR_T_64BIT is not set -CONFIG_ZONE_DMA_FLAG=1 -CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y -CONFIG_MMU_NOTIFIER=y -# CONFIG_KSM is not set -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -CONFIG_NEED_PER_CPU_KM=y -# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set -CONFIG_X86_RESERVE_LOW=64 -CONFIG_MATH_EMULATION=y -# CONFIG_MTRR is not set -# CONFIG_SECCOMP is not set -# CONFIG_CC_STACKPROTECTOR is not set -CONFIG_HZ_100=y -# CONFIG_HZ_250 is not set -# CONFIG_HZ_300 is not set -# CONFIG_HZ_1000 is not set -CONFIG_HZ=100 -# CONFIG_SCHED_HRTICK is not set -# CONFIG_KEXEC is not set -CONFIG_PHYSICAL_START=0x100000 -# CONFIG_RELOCATABLE is not set -CONFIG_PHYSICAL_ALIGN=0x100000 -# CONFIG_COMPAT_VDSO is not set -# CONFIG_CMDLINE_BOOL is not set - -# -# Power management and ACPI options -# -# CONFIG_PM is not set -# CONFIG_SFI is not set - -# -# CPU Frequency scaling -# -# CONFIG_CPU_FREQ is not set -# CONFIG_CPU_IDLE is not set - -# -# Bus options (PCI etc.) -# -CONFIG_PCI=y -# CONFIG_PCI_GOBIOS is not set -# CONFIG_PCI_GOMMCONFIG is not set -# CONFIG_PCI_GODIRECT is not set -CONFIG_PCI_GOANY=y -CONFIG_PCI_BIOS=y -CONFIG_PCI_DIRECT=y -CONFIG_PCI_DOMAINS=y -# CONFIG_PCI_CNB20LE_QUIRK is not set -# CONFIG_PCIEPORTBUS is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set -# CONFIG_PCI_STUB is not set -# CONFIG_PCI_IOV is not set -CONFIG_ISA_DMA_API=y -CONFIG_ISA=y -# CONFIG_EISA is not set -# CONFIG_MCA is not set -# CONFIG_SCx200 is not set -# CONFIG_OLPC is not set -# CONFIG_OLPC_OPENFIRMWARE is not set -CONFIG_AMD_NB=y - -# -# Executable file formats / Emulations -# -CONFIG_BINFMT_ELF=y -CONFIG_HAVE_AOUT=y -CONFIG_BINFMT_AOUT=m -CONFIG_BINFMT_MISC=m -CONFIG_HAVE_ATOMIC_IOMAP=y -CONFIG_HAVE_TEXT_POKE_SMP=y -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_XFRM=y -# CONFIG_XFRM_USER is not set -# CONFIG_XFRM_SUB_POLICY is not set -# CONFIG_XFRM_MIGRATE is not set -# CONFIG_XFRM_STATISTICS is not set -CONFIG_XFRM_IPCOMP=m -# CONFIG_NET_KEY is not set -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_FIB_HASH=y -# CONFIG_IP_PNP is not set -CONFIG_NET_IPIP=m -# CONFIG_NET_IPGRE_DEMUX is not set -# CONFIG_ARPD is not set -# CONFIG_SYN_COOKIES is not set -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_XFRM_TUNNEL=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=m -CONFIG_INET_XFRM_MODE_TUNNEL=m -CONFIG_INET_XFRM_MODE_BEET=m -CONFIG_INET_LRO=y -# CONFIG_INET_DIAG is not set -# CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_CUBIC=y -CONFIG_DEFAULT_TCP_CONG="cubic" -# CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=m -# CONFIG_IPV6_PRIVACY is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -# CONFIG_IPV6_MIP6 is not set -CONFIG_INET6_XFRM_TUNNEL=m -CONFIG_INET6_TUNNEL=m -CONFIG_INET6_XFRM_MODE_TRANSPORT=m -CONFIG_INET6_XFRM_MODE_TUNNEL=m -CONFIG_INET6_XFRM_MODE_BEET=m -# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set -CONFIG_IPV6_SIT=m -# CONFIG_IPV6_SIT_6RD is not set -CONFIG_IPV6_NDISC_NODETYPE=y -CONFIG_IPV6_TUNNEL=m -# CONFIG_IPV6_MULTIPLE_TABLES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_NETWORK_SECMARK is not set -# CONFIG_NETWORK_PHY_TIMESTAMPING is not set -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_NETFILTER_ADVANCED=y -CONFIG_BRIDGE_NETFILTER=y - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK=m -CONFIG_NF_CONNTRACK_MARK=y -CONFIG_NF_CONNTRACK_EVENTS=y -CONFIG_NF_CT_PROTO_DCCP=m -CONFIG_NF_CT_PROTO_GRE=m -CONFIG_NF_CT_PROTO_SCTP=m -CONFIG_NF_CT_PROTO_UDPLITE=m -CONFIG_NF_CONNTRACK_AMANDA=m -CONFIG_NF_CONNTRACK_FTP=m -CONFIG_NF_CONNTRACK_H323=m -CONFIG_NF_CONNTRACK_IRC=m -CONFIG_NF_CONNTRACK_NETBIOS_NS=m -CONFIG_NF_CONNTRACK_PPTP=m -CONFIG_NF_CONNTRACK_SANE=m -CONFIG_NF_CONNTRACK_SIP=m -CONFIG_NF_CONNTRACK_TFTP=m -CONFIG_NF_CT_NETLINK=m -# CONFIG_NETFILTER_TPROXY is not set -CONFIG_NETFILTER_XTABLES=m - -# -# Xtables combined modules -# -CONFIG_NETFILTER_XT_MARK=m -CONFIG_NETFILTER_XT_CONNMARK=m - -# -# Xtables targets -# -# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_CONNMARK=m -# CONFIG_NETFILTER_XT_TARGET_CT is not set -# CONFIG_NETFILTER_XT_TARGET_DSCP is not set -CONFIG_NETFILTER_XT_TARGET_HL=m -# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set -# CONFIG_NETFILTER_XT_TARGET_LED is not set -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NFLOG=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set -CONFIG_NETFILTER_XT_TARGET_RATEEST=m -# CONFIG_NETFILTER_XT_TARGET_TEE is not set -# CONFIG_NETFILTER_XT_TARGET_TRACE is not set -CONFIG_NETFILTER_XT_TARGET_TCPMSS=m -# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set - -# -# Xtables matches -# -CONFIG_NETFILTER_XT_MATCH_CLUSTER=m -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m -CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -# CONFIG_NETFILTER_XT_MATCH_CPU is not set -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_DSCP=m -CONFIG_NETFILTER_XT_MATCH_ESP=m -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_HL=m -CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -# CONFIG_NETFILTER_XT_MATCH_IPVS is not set -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_OSF=m -CONFIG_NETFILTER_XT_MATCH_OWNER=m -CONFIG_NETFILTER_XT_MATCH_POLICY=m -# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_QUOTA=m -CONFIG_NETFILTER_XT_MATCH_RATEEST=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m -CONFIG_NETFILTER_XT_MATCH_TIME=m -CONFIG_NETFILTER_XT_MATCH_U32=m -CONFIG_IP_VS=m -CONFIG_IP_VS_IPV6=y -# CONFIG_IP_VS_DEBUG is not set -CONFIG_IP_VS_TAB_BITS=12 - -# -# IPVS transport protocol load balancing support -# -CONFIG_IP_VS_PROTO_TCP=y -CONFIG_IP_VS_PROTO_UDP=y -CONFIG_IP_VS_PROTO_AH_ESP=y -CONFIG_IP_VS_PROTO_ESP=y -CONFIG_IP_VS_PROTO_AH=y -CONFIG_IP_VS_PROTO_SCTP=y - -# -# IPVS scheduler -# -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_WRR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_SH=m -CONFIG_IP_VS_SED=m -CONFIG_IP_VS_NQ=m - -# -# IPVS application helper -# -CONFIG_IP_VS_FTP=m -CONFIG_IP_VS_NFCT=y -# CONFIG_IP_VS_PE_SIP is not set - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m -CONFIG_IP_NF_MATCH_AH=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m -CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m -CONFIG_NF_NAT_PPTP=m -CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_CLUSTERIP=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m - -# -# IPv6: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV6=m -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_AH=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_MH=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_RAW=m -# CONFIG_BRIDGE_NF_EBTABLES is not set -# CONFIG_IP_DCCP is not set -CONFIG_IP_SCTP=m -# CONFIG_SCTP_DBG_MSG is not set -# CONFIG_SCTP_DBG_OBJCNT is not set -# CONFIG_SCTP_HMAC_NONE is not set -# CONFIG_SCTP_HMAC_SHA1 is not set -CONFIG_SCTP_HMAC_MD5=y -# CONFIG_RDS is not set -# CONFIG_TIPC is not set -# CONFIG_ATM is not set -# CONFIG_L2TP is not set -CONFIG_STP=m -CONFIG_BRIDGE=m -CONFIG_BRIDGE_IGMP_SNOOPING=y -# CONFIG_NET_DSA is not set -CONFIG_VLAN_8021Q=m -# CONFIG_VLAN_8021Q_GVRP is not set -# CONFIG_DECNET is not set -CONFIG_LLC=m -# CONFIG_LLC2 is not set -CONFIG_IPX=m -# CONFIG_IPX_INTERN is not set -CONFIG_ATALK=m -CONFIG_DEV_APPLETALK=m -# CONFIG_LTPC is not set -# CONFIG_COPS is not set -CONFIG_IPDDP=m -CONFIG_IPDDP_ENCAP=y -CONFIG_IPDDP_DECAP=y -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -CONFIG_PHONET=m -# CONFIG_PHONET_PIPECTRLR is not set -# CONFIG_IEEE802154 is not set -CONFIG_NET_SCHED=y - -# -# Queueing/Scheduling -# -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_MULTIQ=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_DSMARK=m -CONFIG_NET_SCH_NETEM=m -CONFIG_NET_SCH_DRR=m -# CONFIG_NET_SCH_INGRESS is not set - -# -# Classification -# -CONFIG_NET_CLS=y -CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_TCINDEX=m -CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_U32=m -CONFIG_CLS_U32_PERF=y -CONFIG_CLS_U32_MARK=y -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -CONFIG_NET_CLS_FLOW=m -CONFIG_NET_EMATCH=y -CONFIG_NET_EMATCH_STACK=32 -CONFIG_NET_EMATCH_CMP=m -CONFIG_NET_EMATCH_NBYTE=m -CONFIG_NET_EMATCH_U32=m -CONFIG_NET_EMATCH_META=m -CONFIG_NET_EMATCH_TEXT=m -CONFIG_NET_CLS_ACT=y -CONFIG_NET_ACT_POLICE=m -CONFIG_NET_ACT_GACT=m -# CONFIG_GACT_PROB is not set -CONFIG_NET_ACT_MIRRED=m -CONFIG_NET_ACT_IPT=m -CONFIG_NET_ACT_NAT=m -CONFIG_NET_ACT_PEDIT=m -CONFIG_NET_ACT_SIMP=m -CONFIG_NET_ACT_SKBEDIT=m -# CONFIG_NET_ACT_CSUM is not set -CONFIG_NET_CLS_IND=y -CONFIG_NET_SCH_FIFO=y -# CONFIG_DCB is not set -CONFIG_DNS_RESOLVER=m - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -CONFIG_IRDA_ULTRA=y - -# -# IrDA options -# -CONFIG_IRDA_CACHE_LAST_LSAP=y -CONFIG_IRDA_FAST_RR=y -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -CONFIG_DONGLE=y -CONFIG_ESI_DONGLE=m -CONFIG_ACTISYS_DONGLE=m -CONFIG_TEKRAM_DONGLE=m -CONFIG_TOIM3232_DONGLE=m -CONFIG_LITELINK_DONGLE=m -CONFIG_MA600_DONGLE=m -CONFIG_GIRBIL_DONGLE=m -CONFIG_MCP2120_DONGLE=m -CONFIG_OLD_BELKIN_DONGLE=m -CONFIG_ACT200L_DONGLE=m -# CONFIG_KINGSUN_DONGLE is not set -# CONFIG_KSDAZZLE_DONGLE is not set -# CONFIG_KS959_DONGLE is not set - -# -# FIR device drivers -# -# CONFIG_USB_IRDA is not set -# CONFIG_SIGMATEL_FIR is not set -CONFIG_NSC_FIR=m -CONFIG_WINBOND_FIR=m -CONFIG_TOSHIBA_FIR=m -CONFIG_SMC_IRCC_FIR=m -CONFIG_ALI_FIR=m -CONFIG_VLSI_FIR=m -CONFIG_VIA_FIR=m -# CONFIG_MCS_FIR is not set -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -# CONFIG_BT_CMTP is not set -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -# CONFIG_BT_HCIBTUSB is not set -# CONFIG_BT_HCIBTSDIO is not set -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -# CONFIG_BT_HCIUART_ATH3K is not set -CONFIG_BT_HCIUART_LL=y -# CONFIG_BT_HCIBCM203X is not set -# CONFIG_BT_HCIBPA10X is not set -# CONFIG_BT_HCIBFUSB is not set -CONFIG_BT_HCIVHCI=m -CONFIG_BT_MRVL=m -# CONFIG_BT_MRVL_SDIO is not set -CONFIG_AF_RXRPC=m -# CONFIG_AF_RXRPC_DEBUG is not set -# CONFIG_RXKAD is not set -CONFIG_WIRELESS=y -CONFIG_WIRELESS_EXT=y -CONFIG_WEXT_CORE=y -CONFIG_WEXT_PROC=y -CONFIG_WEXT_SPY=y -CONFIG_WEXT_PRIV=y -CONFIG_CFG80211=m -# CONFIG_NL80211_TESTMODE is not set -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -# CONFIG_CFG80211_REG_DEBUG is not set -CONFIG_CFG80211_DEFAULT_PS=y -# CONFIG_CFG80211_INTERNAL_REGDB is not set -CONFIG_CFG80211_WEXT=y -CONFIG_WIRELESS_EXT_SYSFS=y -CONFIG_LIB80211=m -CONFIG_LIB80211_CRYPT_WEP=m -CONFIG_LIB80211_CRYPT_CCMP=m -CONFIG_LIB80211_CRYPT_TKIP=m -# CONFIG_LIB80211_DEBUG is not set -CONFIG_MAC80211=m -CONFIG_MAC80211_HAS_RC=y -CONFIG_MAC80211_RC_PID=y -CONFIG_MAC80211_RC_MINSTREL=y -CONFIG_MAC80211_RC_MINSTREL_HT=y -# CONFIG_MAC80211_RC_DEFAULT_PID is not set -CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" -CONFIG_MAC80211_MESH=y -CONFIG_MAC80211_LEDS=y -# CONFIG_MAC80211_DEBUG_MENU is not set -CONFIG_WIMAX=m -CONFIG_WIMAX_DEBUG_LEVEL=8 -CONFIG_RFKILL=m -CONFIG_RFKILL_LEDS=y -CONFIG_RFKILL_INPUT=y -# CONFIG_NET_9P is not set -# CONFIG_CAIF is not set -CONFIG_CEPH_LIB=m -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=m -CONFIG_FIRMWARE_IN_KERNEL=y -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_SYS_HYPERVISOR is not set -CONFIG_CONNECTOR=m -CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set -# CONFIG_MTD_TESTS is not set -CONFIG_MTD_CONCAT=m -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_AR7_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_HAVE_MTD_OTP=y -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m -CONFIG_MTD_BLOCK_RO=m -CONFIG_FTL=m -CONFIG_NFTL=m -CONFIG_NFTL_RW=y -CONFIG_INFTL=m -CONFIG_RFD_FTL=m -CONFIG_SSFDC=m -# CONFIG_SM_FTL is not set -CONFIG_MTD_OOPS=m - -# -# RAM/ROM/Flash chip drivers -# -CONFIG_MTD_CFI=m -CONFIG_MTD_JEDECPROBE=m -CONFIG_MTD_GEN_PROBE=m -# CONFIG_MTD_CFI_ADV_OPTIONS is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -CONFIG_MTD_CFI_INTELEXT=m -CONFIG_MTD_CFI_AMDSTD=m -CONFIG_MTD_CFI_STAA=m -CONFIG_MTD_CFI_UTIL=m -CONFIG_MTD_RAM=m -CONFIG_MTD_ROM=m -CONFIG_MTD_ABSENT=m - -# -# Mapping drivers for chip access -# -CONFIG_MTD_COMPLEX_MAPPINGS=y -CONFIG_MTD_PHYSMAP=m -CONFIG_MTD_PHYSMAP_COMPAT=y -CONFIG_MTD_PHYSMAP_START=0x8000000 -CONFIG_MTD_PHYSMAP_LEN=0 -CONFIG_MTD_PHYSMAP_BANKWIDTH=2 -CONFIG_MTD_SC520CDP=m -CONFIG_MTD_NETSC520=m -CONFIG_MTD_TS5500=m -CONFIG_MTD_SBC_GXX=m -CONFIG_MTD_AMD76XROM=m -CONFIG_MTD_ICHXROM=m -CONFIG_MTD_ESB2ROM=m -CONFIG_MTD_CK804XROM=m -CONFIG_MTD_SCB2_FLASH=m -CONFIG_MTD_NETtel=m -CONFIG_MTD_L440GX=m -CONFIG_MTD_PCI=m -# CONFIG_MTD_GPIO_ADDR is not set -CONFIG_MTD_INTEL_VR_NOR=m -CONFIG_MTD_PLATRAM=m - -# -# Self-contained MTD device drivers -# -CONFIG_MTD_PMC551=m -# CONFIG_MTD_PMC551_BUGFIX is not set -# CONFIG_MTD_PMC551_DEBUG is not set -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_M25P80 is not set -# CONFIG_MTD_SST25L is not set -CONFIG_MTD_SLRAM=m -CONFIG_MTD_PHRAM=m -CONFIG_MTD_MTDRAM=m -CONFIG_MTDRAM_TOTAL_SIZE=4096 -CONFIG_MTDRAM_ERASE_SIZE=128 -CONFIG_MTD_BLOCK2MTD=m - -# -# Disk-On-Chip Device Drivers -# -CONFIG_MTD_DOC2000=m -CONFIG_MTD_DOC2001=m -CONFIG_MTD_DOC2001PLUS=m -CONFIG_MTD_DOCPROBE=m -CONFIG_MTD_DOCECC=m -# CONFIG_MTD_DOCPROBE_ADVANCED is not set -CONFIG_MTD_DOCPROBE_ADDRESS=0 -CONFIG_MTD_NAND_ECC=m -# CONFIG_MTD_NAND_ECC_SMC is not set -CONFIG_MTD_NAND=m -# CONFIG_MTD_NAND_VERIFY_WRITE is not set -# CONFIG_MTD_SM_COMMON is not set -# CONFIG_MTD_NAND_MUSEUM_IDS is not set -# CONFIG_MTD_NAND_DENALI is not set -CONFIG_MTD_NAND_IDS=m -# CONFIG_MTD_NAND_RICOH is not set -CONFIG_MTD_NAND_DISKONCHIP=m -# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set -CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 -# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set -CONFIG_MTD_NAND_CAFE=m -CONFIG_MTD_NAND_CS553X=m -CONFIG_MTD_NAND_NANDSIM=m -CONFIG_MTD_NAND_PLATFORM=m -# CONFIG_MTD_ALAUDA is not set -CONFIG_MTD_ONENAND=m -CONFIG_MTD_ONENAND_VERIFY_WRITE=y -CONFIG_MTD_ONENAND_GENERIC=m -CONFIG_MTD_ONENAND_OTP=y -CONFIG_MTD_ONENAND_2X_PROGRAM=y -CONFIG_MTD_ONENAND_SIM=m - -# -# LPDDR flash memory drivers -# -CONFIG_MTD_LPDDR=m -CONFIG_MTD_QINFO_PROBE=m -CONFIG_MTD_UBI=m -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 -CONFIG_MTD_UBI_GLUEBI=m - -# -# UBI debugging options -# -# CONFIG_MTD_UBI_DEBUG is not set -CONFIG_PARPORT=m -CONFIG_PARPORT_PC=m -CONFIG_PARPORT_SERIAL=m -CONFIG_PARPORT_PC_FIFO=y -CONFIG_PARPORT_PC_SUPERIO=y -# CONFIG_PARPORT_GSC is not set -CONFIG_PARPORT_AX88796=m -CONFIG_PARPORT_1284=y -CONFIG_PARPORT_NOT_PC=y -CONFIG_PNP=y -CONFIG_PNP_DEBUG_MESSAGES=y - -# -# Protocols -# -CONFIG_ISAPNP=y -# CONFIG_PNPBIOS is not set -# CONFIG_PNPACPI is not set -CONFIG_BLK_DEV=y -CONFIG_BLK_DEV_FD=m -# CONFIG_BLK_DEV_XD is not set -CONFIG_PARIDE=m - -# -# Parallel IDE high-level drivers -# -CONFIG_PARIDE_PD=m -CONFIG_PARIDE_PCD=m -CONFIG_PARIDE_PF=m -CONFIG_PARIDE_PT=m -CONFIG_PARIDE_PG=m - -# -# Parallel IDE protocol modules -# -CONFIG_PARIDE_ATEN=m -CONFIG_PARIDE_BPCK=m -CONFIG_PARIDE_BPCK6=m -CONFIG_PARIDE_COMM=m -CONFIG_PARIDE_DSTR=m -CONFIG_PARIDE_FIT2=m -CONFIG_PARIDE_FIT3=m -CONFIG_PARIDE_EPAT=m -CONFIG_PARIDE_EPATC8=y -CONFIG_PARIDE_EPIA=m -CONFIG_PARIDE_FRIQ=m -CONFIG_PARIDE_FRPW=m -CONFIG_PARIDE_KBIC=m -CONFIG_PARIDE_KTTI=m -CONFIG_PARIDE_ON20=m -CONFIG_PARIDE_ON26=m -CONFIG_BLK_CPQ_DA=m -CONFIG_BLK_CPQ_CISS_DA=m -CONFIG_CISS_SCSI_TAPE=y -CONFIG_BLK_DEV_DAC960=m -CONFIG_BLK_DEV_UMEM=m -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=m -CONFIG_BLK_DEV_CRYPTOLOOP=m -CONFIG_BLK_DEV_DRBD=m -# CONFIG_DRBD_FAULT_INJECTION is not set -CONFIG_BLK_DEV_NBD=m -# CONFIG_BLK_DEV_OSD is not set -CONFIG_BLK_DEV_SX8=m -CONFIG_BLK_DEV_UB=m -CONFIG_BLK_DEV_RAM=m -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=4096 -CONFIG_BLK_DEV_XIP=y -CONFIG_CDROM_PKTCDVD=m -CONFIG_CDROM_PKTCDVD_BUFFERS=8 -# CONFIG_CDROM_PKTCDVD_WCACHE is not set -CONFIG_ATA_OVER_ETH=m -# CONFIG_VIRTIO_BLK is not set -# CONFIG_BLK_DEV_HD is not set -# CONFIG_BLK_DEV_RBD is not set -CONFIG_MISC_DEVICES=y -# CONFIG_AD525X_DPOT is not set -CONFIG_IBM_ASM=m -CONFIG_PHANTOM=m -CONFIG_SGI_IOC4=m -CONFIG_TIFM_CORE=m -CONFIG_TIFM_7XX1=m -CONFIG_ICS932S401=m -CONFIG_ENCLOSURE_SERVICES=m -CONFIG_CS5535_MFGPT=m -CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7 -CONFIG_CS5535_CLOCK_EVENT_SRC=m -CONFIG_HP_ILO=m -# CONFIG_APDS9802ALS is not set -# CONFIG_ISL29003 is not set -# CONFIG_ISL29020 is not set -# CONFIG_SENSORS_TSL2550 is not set -# CONFIG_SENSORS_BH1780 is not set -# CONFIG_SENSORS_BH1770 is not set -# CONFIG_SENSORS_APDS990X is not set -# CONFIG_HMC6352 is not set -CONFIG_DS1682=m -# CONFIG_TI_DAC7512 is not set -CONFIG_VMWARE_BALLOON=m -# CONFIG_BMP085 is not set -# CONFIG_PCH_PHUB is not set -CONFIG_C2PORT=m -CONFIG_C2PORT_DURAMAR_2150=m - -# -# EEPROM support -# -# CONFIG_EEPROM_AT24 is not set -# CONFIG_EEPROM_AT25 is not set -# CONFIG_EEPROM_LEGACY is not set -# CONFIG_EEPROM_MAX6875 is not set -CONFIG_EEPROM_93CX6=m -CONFIG_CB710_CORE=m -# CONFIG_CB710_DEBUG is not set -CONFIG_CB710_DEBUG_ASSUMPTIONS=y -# CONFIG_IWMC3200TOP is not set - -# -# Texas Instruments shared transport line discipline -# -# CONFIG_TI_ST is not set -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set - -# -# SCSI device support -# -CONFIG_SCSI_MOD=m -CONFIG_RAID_ATTRS=m -CONFIG_SCSI=m -CONFIG_SCSI_DMA=y -CONFIG_SCSI_TGT=m -CONFIG_SCSI_NETLINK=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=m -CONFIG_CHR_DEV_ST=m -CONFIG_CHR_DEV_OSST=m -CONFIG_BLK_DEV_SR=m -CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_CHR_DEV_SG=m -CONFIG_CHR_DEV_SCH=m -CONFIG_SCSI_ENCLOSURE=m -CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -CONFIG_SCSI_SCAN_ASYNC=y -CONFIG_SCSI_WAIT_SCAN=m - -# -# SCSI Transports -# -CONFIG_SCSI_SPI_ATTRS=m -CONFIG_SCSI_FC_ATTRS=m -CONFIG_SCSI_FC_TGT_ATTRS=y -CONFIG_SCSI_ISCSI_ATTRS=m -CONFIG_SCSI_SAS_ATTRS=m -CONFIG_SCSI_SAS_LIBSAS=m -CONFIG_SCSI_SAS_ATA=y -CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS_DEBUG=y -CONFIG_SCSI_SRP_ATTRS=m -CONFIG_SCSI_SRP_TGT_ATTRS=y -CONFIG_SCSI_LOWLEVEL=y -CONFIG_ISCSI_TCP=m -CONFIG_ISCSI_BOOT_SYSFS=m -CONFIG_SCSI_CXGB3_ISCSI=m -# CONFIG_SCSI_CXGB4_ISCSI is not set -CONFIG_SCSI_BNX2_ISCSI=m -CONFIG_BE2ISCSI=m -CONFIG_BLK_DEV_3W_XXXX_RAID=m -CONFIG_SCSI_HPSA=m -CONFIG_SCSI_3W_9XXX=m -CONFIG_SCSI_3W_SAS=m -CONFIG_SCSI_7000FASST=m -CONFIG_SCSI_ACARD=m -CONFIG_SCSI_AHA152X=m -CONFIG_SCSI_AHA1542=m -CONFIG_SCSI_AACRAID=m -CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 -CONFIG_AIC7XXX_RESET_DELAY_MS=5000 -CONFIG_AIC7XXX_DEBUG_ENABLE=y -CONFIG_AIC7XXX_DEBUG_MASK=0 -CONFIG_AIC7XXX_REG_PRETTY_PRINT=y -# CONFIG_SCSI_AIC7XXX_OLD is not set -CONFIG_SCSI_AIC79XX=m -CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=5000 -CONFIG_AIC79XX_DEBUG_ENABLE=y -CONFIG_AIC79XX_DEBUG_MASK=0 -CONFIG_AIC79XX_REG_PRETTY_PRINT=y -CONFIG_SCSI_AIC94XX=m -CONFIG_AIC94XX_DEBUG=y -CONFIG_SCSI_MVSAS=m -CONFIG_SCSI_MVSAS_DEBUG=y -CONFIG_SCSI_DPT_I2O=m -CONFIG_SCSI_ADVANSYS=m -CONFIG_SCSI_IN2000=m -CONFIG_SCSI_ARCMSR=m -CONFIG_MEGARAID_NEWGEN=y -CONFIG_MEGARAID_MM=m -CONFIG_MEGARAID_MAILBOX=m -CONFIG_MEGARAID_LEGACY=m -CONFIG_MEGARAID_SAS=m -CONFIG_SCSI_MPT2SAS=m -CONFIG_SCSI_MPT2SAS_MAX_SGE=128 -CONFIG_SCSI_MPT2SAS_LOGGING=y -CONFIG_SCSI_HPTIOP=m -CONFIG_SCSI_BUSLOGIC=m -CONFIG_SCSI_FLASHPOINT=y -CONFIG_VMWARE_PVSCSI=m -CONFIG_LIBFC=m -CONFIG_LIBFCOE=m -CONFIG_FCOE=m -CONFIG_FCOE_FNIC=m -CONFIG_SCSI_DMX3191D=m -CONFIG_SCSI_DTC3280=m -CONFIG_SCSI_EATA=m -CONFIG_SCSI_EATA_TAGGED_QUEUE=y -CONFIG_SCSI_EATA_LINKED_COMMANDS=y -CONFIG_SCSI_EATA_MAX_TAGS=16 -CONFIG_SCSI_FUTURE_DOMAIN=m -CONFIG_SCSI_GDTH=m -CONFIG_SCSI_GENERIC_NCR5380=m -CONFIG_SCSI_GENERIC_NCR5380_MMIO=m -CONFIG_SCSI_GENERIC_NCR53C400=y -CONFIG_SCSI_IPS=m -CONFIG_SCSI_INITIO=m -CONFIG_SCSI_INIA100=m -CONFIG_SCSI_PPA=m -CONFIG_SCSI_IMM=m -CONFIG_SCSI_IZIP_EPP16=y -CONFIG_SCSI_IZIP_SLOW_CTR=y -CONFIG_SCSI_NCR53C406A=m -CONFIG_SCSI_STEX=m -CONFIG_SCSI_SYM53C8XX_2=m -CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 -CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 -CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -CONFIG_SCSI_SYM53C8XX_MMIO=y -# CONFIG_SCSI_IPR is not set -CONFIG_SCSI_PAS16=m -CONFIG_SCSI_QLOGIC_FAS=m -CONFIG_SCSI_QLOGIC_1280=m -CONFIG_SCSI_QLA_FC=m -CONFIG_SCSI_QLA_ISCSI=m -CONFIG_SCSI_LPFC=m -CONFIG_SCSI_SYM53C416=m -CONFIG_SCSI_DC395x=m -CONFIG_SCSI_DC390T=m -CONFIG_SCSI_T128=m -CONFIG_SCSI_U14_34F=m -CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y -CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y -CONFIG_SCSI_U14_34F_MAX_TAGS=8 -CONFIG_SCSI_ULTRASTOR=m -CONFIG_SCSI_NSP32=m -CONFIG_SCSI_DEBUG=m -CONFIG_SCSI_PMCRAID=m -CONFIG_SCSI_PM8001=m -CONFIG_SCSI_SRP=m -CONFIG_SCSI_BFA_FC=m -CONFIG_SCSI_DH=m -CONFIG_SCSI_DH_RDAC=m -CONFIG_SCSI_DH_HP_SW=m -CONFIG_SCSI_DH_EMC=m -CONFIG_SCSI_DH_ALUA=m -CONFIG_SCSI_OSD_INITIATOR=m -CONFIG_SCSI_OSD_ULD=m -CONFIG_SCSI_OSD_DPRINT_SENSE=1 -CONFIG_SCSI_OSD_DEBUG=y -CONFIG_ATA=m -# CONFIG_ATA_NONSTANDARD is not set -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_SATA_PMP=y - -# -# Controllers with non-SFF native interface -# -CONFIG_SATA_AHCI=m -# CONFIG_SATA_AHCI_PLATFORM is not set -CONFIG_SATA_INIC162X=m -CONFIG_SATA_SIL24=m -CONFIG_ATA_SFF=y - -# -# SFF controllers with custom DMA interface -# -CONFIG_PDC_ADMA=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_SX4=m -CONFIG_ATA_BMDMA=y - -# -# SATA SFF controllers with BMDMA -# -CONFIG_ATA_PIIX=m -CONFIG_SATA_MV=m -CONFIG_SATA_NV=m -CONFIG_SATA_PROMISE=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_SVW=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m - -# -# PATA SFF controllers with BMDMA -# -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m -CONFIG_PATA_ATP867X=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CS5520=m -CONFIG_PATA_CS5530=m -CONFIG_PATA_CS5535=m -CONFIG_PATA_CS5536=m -CONFIG_PATA_CYPRESS=m -CONFIG_PATA_EFAR=m -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m -CONFIG_PATA_HPT3X3=m -CONFIG_PATA_HPT3X3_DMA=y -CONFIG_PATA_IT8213=m -CONFIG_PATA_IT821X=m -CONFIG_PATA_JMICRON=m -CONFIG_PATA_MARVELL=m -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87415=m -CONFIG_PATA_OLDPIIX=m -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_PDC_OLD=m -CONFIG_PATA_RADISYS=m -CONFIG_PATA_RDC=m -CONFIG_PATA_SC1200=m -CONFIG_PATA_SCH=m -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m -CONFIG_PATA_TRIFLEX=m -CONFIG_PATA_VIA=m -CONFIG_PATA_WINBOND=m - -# -# PIO-only SFF controllers -# -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_ISAPNP=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_OPTI=m -CONFIG_PATA_PLATFORM=m -CONFIG_PATA_QDI=m -CONFIG_PATA_RZ1000=m -CONFIG_PATA_WINBOND_VLB=m - -# -# Generic fallback / legacy drivers -# -CONFIG_ATA_GENERIC=m -CONFIG_PATA_LEGACY=m -CONFIG_MD=y -CONFIG_BLK_DEV_MD=m -CONFIG_MD_LINEAR=m -CONFIG_MD_RAID0=m -CONFIG_MD_RAID1=m -CONFIG_MD_RAID10=m -CONFIG_MD_RAID456=m -CONFIG_MD_MULTIPATH=m -CONFIG_MD_FAULTY=m -CONFIG_BLK_DEV_DM=m -# CONFIG_DM_DEBUG is not set -CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_MIRROR=m -CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_ZERO=m -CONFIG_DM_MULTIPATH=m -CONFIG_DM_MULTIPATH_QL=m -CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_DELAY=m -CONFIG_DM_UEVENT=y -CONFIG_FUSION=y -CONFIG_FUSION_SPI=m -CONFIG_FUSION_FC=m -CONFIG_FUSION_SAS=m -CONFIG_FUSION_MAX_SGE=128 -CONFIG_FUSION_CTL=m -CONFIG_FUSION_LAN=m -CONFIG_FUSION_LOGGING=y - -# -# IEEE 1394 (FireWire) support -# -CONFIG_FIREWIRE=m -CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_OHCI_DEBUG=y -CONFIG_FIREWIRE_SBP2=m -CONFIG_FIREWIRE_NET=m -# CONFIG_FIREWIRE_NOSY is not set -CONFIG_I2O=m -CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y -CONFIG_I2O_EXT_ADAPTEC=y -CONFIG_I2O_CONFIG=m -# CONFIG_I2O_CONFIG_OLD_IOCTL is not set -CONFIG_I2O_BUS=m -CONFIG_I2O_BLOCK=m -CONFIG_I2O_SCSI=m -CONFIG_I2O_PROC=m -CONFIG_MACINTOSH_DRIVERS=y -CONFIG_MAC_EMUMOUSEBTN=m -CONFIG_NETDEVICES=y -CONFIG_IFB=m -CONFIG_DUMMY=m -CONFIG_BONDING=m -CONFIG_MACVLAN=m -CONFIG_MACVTAP=m -CONFIG_EQUALIZER=m -CONFIG_TUN=m -CONFIG_VETH=m -CONFIG_NET_SB1000=m -CONFIG_ARCNET=m -CONFIG_ARCNET_1201=m -CONFIG_ARCNET_1051=m -CONFIG_ARCNET_RAW=m -CONFIG_ARCNET_CAP=m -CONFIG_ARCNET_COM90xx=m -CONFIG_ARCNET_COM90xxIO=m -CONFIG_ARCNET_RIM_I=m -CONFIG_ARCNET_COM20020=m -CONFIG_ARCNET_COM20020_ISA=m -CONFIG_ARCNET_COM20020_PCI=m -CONFIG_MII=m -CONFIG_PHYLIB=m - -# -# MII PHY device drivers -# -CONFIG_MARVELL_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_LXT_PHY=m -CONFIG_CICADA_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_SMSC_PHY=m -CONFIG_BROADCOM_PHY=m -# CONFIG_BCM63XX_PHY is not set -CONFIG_ICPLUS_PHY=m -CONFIG_REALTEK_PHY=m -CONFIG_NATIONAL_PHY=m -CONFIG_STE10XP=m -CONFIG_LSI_ET1011C_PHY=m -CONFIG_MICREL_PHY=m -CONFIG_MDIO_BITBANG=m -CONFIG_MDIO_GPIO=m -CONFIG_NET_ETHERNET=y -CONFIG_HAPPYMEAL=m -CONFIG_SUNGEM=m -CONFIG_CASSINI=m -CONFIG_NET_VENDOR_3COM=y -CONFIG_EL1=m -CONFIG_EL2=m -CONFIG_ELPLUS=m -CONFIG_EL16=m -CONFIG_EL3=m -CONFIG_3C515=m -CONFIG_VORTEX=m -CONFIG_TYPHOON=m -CONFIG_LANCE=m -CONFIG_NET_VENDOR_SMC=y -CONFIG_WD80x3=m -CONFIG_ULTRA=m -CONFIG_SMC9194=m -CONFIG_ENC28J60=m -CONFIG_ENC28J60_WRITEVERIFY=y -CONFIG_ETHOC=m -CONFIG_NET_VENDOR_RACAL=y -CONFIG_NI5010=m -CONFIG_NI52=m -CONFIG_NI65=m -CONFIG_DNET=m -CONFIG_NET_TULIP=y -CONFIG_DE2104X=m -CONFIG_DE2104X_DSL=0 -CONFIG_TULIP=m -# CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set -# CONFIG_TULIP_NAPI is not set -CONFIG_DE4X5=m -CONFIG_WINBOND_840=m -CONFIG_DM9102=m -CONFIG_ULI526X=m -CONFIG_AT1700=m -CONFIG_DEPCA=m -CONFIG_HP100=m -CONFIG_NET_ISA=y -CONFIG_E2100=m -CONFIG_EWRK3=m -CONFIG_EEXPRESS=m -CONFIG_EEXPRESS_PRO=m -CONFIG_HPLAN_PLUS=m -CONFIG_HPLAN=m -CONFIG_LP486E=m -CONFIG_ETH16I=m -CONFIG_NE2000=m -CONFIG_ZNET=m -CONFIG_SEEQ8005=m -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -CONFIG_NET_PCI=y -CONFIG_PCNET32=m -CONFIG_AMD8111_ETH=m -CONFIG_ADAPTEC_STARFIRE=m -CONFIG_AC3200=m -CONFIG_KSZ884X_PCI=m -CONFIG_APRICOT=m -CONFIG_B44=m -CONFIG_B44_PCI_AUTOSELECT=y -CONFIG_B44_PCICORE_AUTOSELECT=y -CONFIG_B44_PCI=y -CONFIG_FORCEDETH=m -CONFIG_CS89x0=m -CONFIG_E100=m -CONFIG_FEALNX=m -CONFIG_NATSEMI=m -CONFIG_NE2K_PCI=m -CONFIG_8139CP=m -CONFIG_8139TOO=m -CONFIG_8139TOO_PIO=y -# CONFIG_8139TOO_TUNE_TWISTER is not set -# CONFIG_8139TOO_8129 is not set -# CONFIG_8139_OLD_RX_RESET is not set -CONFIG_R6040=m -CONFIG_SIS900=m -CONFIG_EPIC100=m -CONFIG_SMSC9420=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set -CONFIG_TLAN=m -CONFIG_KS8842=m -CONFIG_KS8851=m -CONFIG_KS8851_MLL=m -CONFIG_VIA_RHINE=m -# CONFIG_VIA_RHINE_MMIO is not set -CONFIG_SC92031=m -CONFIG_NET_POCKET=y -CONFIG_ATP=m -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_ATL2=m -CONFIG_NETDEV_1000=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -CONFIG_E1000=m -CONFIG_E1000E=m -CONFIG_IP1000=m -CONFIG_IGB=m -CONFIG_IGB_DCA=y -CONFIG_IGBVF=m -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_R8169=m -CONFIG_R8169_VLAN=y -CONFIG_SIS190=m -CONFIG_SKGE=m -CONFIG_SKY2=m -CONFIG_VIA_VELOCITY=m -CONFIG_TIGON3=m -CONFIG_BNX2=m -CONFIG_CNIC=m -CONFIG_QLA3XXX=m -CONFIG_ATL1=m -CONFIG_ATL1E=m -CONFIG_ATL1C=m -CONFIG_JME=m -# CONFIG_STMMAC_ETH is not set -# CONFIG_PCH_GBE is not set -CONFIG_NETDEV_10000=y -CONFIG_MDIO=m -CONFIG_CHELSIO_T1=m -CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T3_DEPENDS=y -CONFIG_CHELSIO_T3=m -CONFIG_CHELSIO_T4_DEPENDS=y -CONFIG_CHELSIO_T4=m -CONFIG_CHELSIO_T4VF_DEPENDS=y -# CONFIG_CHELSIO_T4VF is not set -CONFIG_ENIC=m -CONFIG_IXGBE=m -CONFIG_IXGBE_DCA=y -CONFIG_IXGB=m -CONFIG_S2IO=m -CONFIG_VXGE=m -CONFIG_VXGE_DEBUG_TRACE_ALL=y -CONFIG_MYRI10GE=m -CONFIG_MYRI10GE_DCA=y -CONFIG_NETXEN_NIC=m -CONFIG_NIU=m -CONFIG_MLX4_EN=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y -CONFIG_TEHUTI=m -CONFIG_BNX2X=m -CONFIG_QLCNIC=m -CONFIG_QLGE=m -# CONFIG_BNA is not set -CONFIG_SFC=m -CONFIG_SFC_MTD=y -CONFIG_BE2NET=m -CONFIG_TR=m -CONFIG_IBMTR=m -CONFIG_IBMOL=m -CONFIG_IBMLS=m -CONFIG_3C359=m -CONFIG_TMS380TR=m -CONFIG_TMSPCI=m -CONFIG_SKISA=m -CONFIG_PROTEON=m -CONFIG_ABYSS=m -CONFIG_SMCTR=m -CONFIG_WLAN=y -CONFIG_LIBERTAS_THINFIRM=m -# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set -CONFIG_LIBERTAS_THINFIRM_USB=m -CONFIG_AIRO=m -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m -CONFIG_AT76C50X_USB=m -CONFIG_PRISM54=m -CONFIG_USB_ZD1201=m -CONFIG_USB_NET_RNDIS_WLAN=m -CONFIG_RTL8180=m -CONFIG_RTL8187=m -CONFIG_RTL8187_LEDS=y -CONFIG_ADM8211=m -CONFIG_MAC80211_HWSIM=m -CONFIG_MWL8K=m -CONFIG_ATH_COMMON=m -# CONFIG_ATH_DEBUG is not set -# CONFIG_ATH5K is not set -# CONFIG_ATH9K is not set -# CONFIG_ATH9K_HTC is not set -# CONFIG_AR9170_USB is not set -# CONFIG_CARL9170 is not set -CONFIG_B43=m -CONFIG_B43_PCI_AUTOSELECT=y -CONFIG_B43_PCICORE_AUTOSELECT=y -# CONFIG_B43_SDIO is not set -CONFIG_B43_PIO=y -CONFIG_B43_PHY_LP=y -CONFIG_B43_LEDS=y -CONFIG_B43_HWRNG=y -# CONFIG_B43_DEBUG is not set -CONFIG_B43LEGACY=m -CONFIG_B43LEGACY_PCI_AUTOSELECT=y -CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y -CONFIG_B43LEGACY_LEDS=y -CONFIG_B43LEGACY_HWRNG=y -CONFIG_B43LEGACY_DEBUG=y -CONFIG_B43LEGACY_DMA=y -CONFIG_B43LEGACY_PIO=y -CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y -# CONFIG_B43LEGACY_DMA_MODE is not set -# CONFIG_B43LEGACY_PIO_MODE is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -CONFIG_HOSTAP_FIRMWARE_NVRAM=y -CONFIG_HOSTAP_PLX=m -CONFIG_HOSTAP_PCI=m -CONFIG_IPW2100=m -CONFIG_IPW2100_MONITOR=y -# CONFIG_IPW2100_DEBUG is not set -CONFIG_IPW2200=m -CONFIG_IPW2200_MONITOR=y -CONFIG_IPW2200_RADIOTAP=y -CONFIG_IPW2200_PROMISCUOUS=y -CONFIG_IPW2200_QOS=y -# CONFIG_IPW2200_DEBUG is not set -CONFIG_LIBIPW=m -# CONFIG_LIBIPW_DEBUG is not set -CONFIG_IWLWIFI=m - -# -# Debugging Options -# -# CONFIG_IWLWIFI_DEBUG is not set -CONFIG_IWLAGN=m -CONFIG_IWL4965=y -CONFIG_IWL5000=y -CONFIG_IWL3945=m -# CONFIG_IWM is not set -CONFIG_LIBERTAS=m -CONFIG_LIBERTAS_USB=m -# CONFIG_LIBERTAS_SDIO is not set -CONFIG_LIBERTAS_SPI=m -# CONFIG_LIBERTAS_DEBUG is not set -CONFIG_LIBERTAS_MESH=y -CONFIG_HERMES=m -# CONFIG_HERMES_PRISM is not set -CONFIG_HERMES_CACHE_FW_ON_INIT=y -CONFIG_PLX_HERMES=m -CONFIG_TMD_HERMES=m -CONFIG_NORTEL_HERMES=m -# CONFIG_ORINOCO_USB is not set -CONFIG_P54_COMMON=m -CONFIG_P54_USB=m -CONFIG_P54_PCI=m -CONFIG_P54_SPI=m -# CONFIG_P54_SPI_DEFAULT_EEPROM is not set -CONFIG_P54_LEDS=y -CONFIG_RT2X00=m -CONFIG_RT2400PCI=m -CONFIG_RT2500PCI=m -CONFIG_RT61PCI=m -CONFIG_RT2800PCI_PCI=y -CONFIG_RT2800PCI=m -CONFIG_RT2800PCI_RT30XX=y -CONFIG_RT2800PCI_RT35XX=y -# CONFIG_RT2500USB is not set -# CONFIG_RT73USB is not set -# CONFIG_RT2800USB is not set -CONFIG_RT2800_LIB=m -CONFIG_RT2X00_LIB_PCI=m -CONFIG_RT2X00_LIB=m -CONFIG_RT2X00_LIB_HT=y -CONFIG_RT2X00_LIB_FIRMWARE=y -CONFIG_RT2X00_LIB_CRYPTO=y -CONFIG_RT2X00_LIB_LEDS=y -# CONFIG_RT2X00_DEBUG is not set -CONFIG_WL1251=m -CONFIG_WL1251_SPI=m -# CONFIG_WL1251_SDIO is not set -CONFIG_WL12XX=m -CONFIG_WL1271=m -# CONFIG_WL1271_SPI is not set -# CONFIG_WL1271_SDIO is not set -CONFIG_ZD1211RW=m -# CONFIG_ZD1211RW_DEBUG is not set - -# -# WiMAX Wireless Broadband devices -# -CONFIG_WIMAX_I2400M=m -CONFIG_WIMAX_I2400M_USB=m -# CONFIG_WIMAX_I2400M_SDIO is not set -CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 - -# -# USB Network Adapters -# -CONFIG_USB_CATC=m -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -CONFIG_USB_RTL8150=m -CONFIG_USB_USBNET=m -CONFIG_USB_NET_AX8817X=m -CONFIG_USB_NET_CDCETHER=m -CONFIG_USB_NET_CDC_EEM=m -CONFIG_USB_NET_DM9601=m -CONFIG_USB_NET_SMSC75XX=m -CONFIG_USB_NET_SMSC95XX=m -CONFIG_USB_NET_GL620A=m -CONFIG_USB_NET_NET1080=m -CONFIG_USB_NET_PLUSB=m -CONFIG_USB_NET_MCS7830=m -CONFIG_USB_NET_RNDIS_HOST=m -CONFIG_USB_NET_CDC_SUBSET=m -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_KC2190=y -CONFIG_USB_NET_ZAURUS=m -# CONFIG_USB_NET_CX82310_ETH is not set -CONFIG_USB_HSO=m -CONFIG_USB_NET_INT51X1=m -CONFIG_USB_CDC_PHONET=m -CONFIG_USB_IPHETH=m -CONFIG_USB_SIERRA_NET=m -CONFIG_WAN=y -CONFIG_HOSTESS_SV11=m -CONFIG_COSA=m -CONFIG_LANMEDIA=m -CONFIG_SEALEVEL_4021=m -CONFIG_HDLC=m -CONFIG_HDLC_RAW=m -CONFIG_HDLC_RAW_ETH=m -CONFIG_HDLC_CISCO=m -CONFIG_HDLC_FR=m -CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -CONFIG_PC300TOO=m -CONFIG_N2=m -CONFIG_C101=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 -CONFIG_SDLA=m -CONFIG_SBNI=m -CONFIG_SBNI_MULTILINE=y - -# -# CAIF transport drivers -# -CONFIG_FDDI=m -CONFIG_DEFXX=m -# CONFIG_DEFXX_MMIO is not set -CONFIG_SKFP=m -CONFIG_HIPPI=y -CONFIG_ROADRUNNER=m -CONFIG_ROADRUNNER_LARGE_RINGS=y -CONFIG_PLIP=m -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -CONFIG_NET_FC=y -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -# CONFIG_VIRTIO_NET is not set -CONFIG_VMXNET3=m -CONFIG_ISDN=y -CONFIG_ISDN_I4L=m -# CONFIG_ISDN_PPP is not set -# CONFIG_ISDN_AUDIO is not set - -# -# ISDN feature submodules -# -# CONFIG_ISDN_DRV_LOOP is not set -# CONFIG_ISDN_DIVERSION is not set - -# -# ISDN4Linux hardware drivers -# - -# -# Passive cards -# -# CONFIG_ISDN_DRV_HISAX is not set - -# -# Active cards -# -# CONFIG_ISDN_DRV_ICN is not set -# CONFIG_ISDN_DRV_PCBIT is not set -# CONFIG_ISDN_DRV_SC is not set -# CONFIG_ISDN_DRV_ACT2000 is not set -CONFIG_ISDN_CAPI=m -CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y -CONFIG_CAPI_TRACE=y -CONFIG_ISDN_CAPI_MIDDLEWARE=y -CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIFS_BOOL=y -CONFIG_ISDN_CAPI_CAPIFS=m -CONFIG_ISDN_CAPI_CAPIDRV=m - -# -# CAPI hardware drivers -# -CONFIG_CAPI_AVM=y -CONFIG_ISDN_DRV_AVMB1_B1ISA=m -CONFIG_ISDN_DRV_AVMB1_B1PCI=m -CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y -CONFIG_ISDN_DRV_AVMB1_T1ISA=m -CONFIG_ISDN_DRV_AVMB1_T1PCI=m -CONFIG_ISDN_DRV_AVMB1_C4=m -CONFIG_CAPI_EICON=y -CONFIG_ISDN_DIVAS=m -CONFIG_ISDN_DIVAS_BRIPCI=y -CONFIG_ISDN_DIVAS_PRIPCI=y -CONFIG_ISDN_DIVAS_DIVACAPI=m -CONFIG_ISDN_DIVAS_USERIDI=m -CONFIG_ISDN_DIVAS_MAINT=m -CONFIG_ISDN_DRV_GIGASET=m -CONFIG_GIGASET_CAPI=y -# CONFIG_GIGASET_I4L is not set -# CONFIG_GIGASET_DUMMYLL is not set -CONFIG_GIGASET_BASE=m -CONFIG_GIGASET_M105=m -CONFIG_GIGASET_M101=m -# CONFIG_GIGASET_DEBUG is not set -CONFIG_HYSDN=m -CONFIG_HYSDN_CAPI=y -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m -CONFIG_ISDN_HDLC=m -CONFIG_PHONE=m -CONFIG_PHONE_IXJ=m - -# -# Input device support -# -CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=m -CONFIG_INPUT_POLLDEV=m -CONFIG_INPUT_SPARSEKMAP=m - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=m -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -CONFIG_INPUT_JOYDEV=m -CONFIG_INPUT_EVDEV=m -CONFIG_INPUT_EVBUG=m - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADP5588=m -CONFIG_KEYBOARD_ATKBD=y -# CONFIG_KEYBOARD_QT2160 is not set -CONFIG_KEYBOARD_LKKBD=m -CONFIG_KEYBOARD_GPIO=m -# CONFIG_KEYBOARD_GPIO_POLLED is not set -# CONFIG_KEYBOARD_TCA6416 is not set -CONFIG_KEYBOARD_MATRIX=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_MAX7359=m -# CONFIG_KEYBOARD_MCS is not set -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_OPENCORES=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_XTKBD=m -CONFIG_INPUT_MOUSE=y -CONFIG_MOUSE_PS2=m -CONFIG_MOUSE_PS2_ALPS=y -CONFIG_MOUSE_PS2_LOGIPS2PP=y -CONFIG_MOUSE_PS2_SYNAPTICS=y -CONFIG_MOUSE_PS2_TRACKPOINT=y -CONFIG_MOUSE_PS2_ELANTECH=y -CONFIG_MOUSE_PS2_SENTELIC=y -CONFIG_MOUSE_PS2_TOUCHKIT=y -CONFIG_MOUSE_SERIAL=m -CONFIG_MOUSE_APPLETOUCH=m -CONFIG_MOUSE_BCM5974=m -CONFIG_MOUSE_INPORT=m -CONFIG_MOUSE_ATIXL=y -CONFIG_MOUSE_LOGIBM=m -CONFIG_MOUSE_PC110PAD=m -CONFIG_MOUSE_VSXXXAA=m -CONFIG_MOUSE_GPIO=m -CONFIG_MOUSE_SYNAPTICS_I2C=m -CONFIG_INPUT_JOYSTICK=y -CONFIG_JOYSTICK_ANALOG=m -CONFIG_JOYSTICK_A3D=m -CONFIG_JOYSTICK_ADI=m -CONFIG_JOYSTICK_COBRA=m -CONFIG_JOYSTICK_GF2K=m -CONFIG_JOYSTICK_GRIP=m -CONFIG_JOYSTICK_GRIP_MP=m -CONFIG_JOYSTICK_GUILLEMOT=m -CONFIG_JOYSTICK_INTERACT=m -CONFIG_JOYSTICK_SIDEWINDER=m -CONFIG_JOYSTICK_TMDC=m -CONFIG_JOYSTICK_IFORCE=m -CONFIG_JOYSTICK_IFORCE_USB=y -CONFIG_JOYSTICK_IFORCE_232=y -CONFIG_JOYSTICK_WARRIOR=m -CONFIG_JOYSTICK_MAGELLAN=m -CONFIG_JOYSTICK_SPACEORB=m -CONFIG_JOYSTICK_SPACEBALL=m -CONFIG_JOYSTICK_STINGER=m -CONFIG_JOYSTICK_TWIDJOY=m -CONFIG_JOYSTICK_ZHENHUA=m -CONFIG_JOYSTICK_DB9=m -CONFIG_JOYSTICK_GAMECON=m -CONFIG_JOYSTICK_TURBOGRAFX=m -CONFIG_JOYSTICK_JOYDUMP=m -CONFIG_JOYSTICK_XPAD=m -CONFIG_JOYSTICK_XPAD_FF=y -CONFIG_JOYSTICK_XPAD_LEDS=y -CONFIG_INPUT_TABLET=y -CONFIG_TABLET_USB_ACECAD=m -CONFIG_TABLET_USB_AIPTEK=m -CONFIG_TABLET_USB_GTCO=m -# CONFIG_TABLET_USB_HANWANG is not set -CONFIG_TABLET_USB_KBTAB=m -CONFIG_TABLET_USB_WACOM=m -CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_ADS7846=m -CONFIG_TOUCHSCREEN_AD7877=m -CONFIG_TOUCHSCREEN_AD7879=m -CONFIG_TOUCHSCREEN_AD7879_I2C=m -# CONFIG_TOUCHSCREEN_AD7879_SPI is not set -# CONFIG_TOUCHSCREEN_BU21013 is not set -# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set -CONFIG_TOUCHSCREEN_DYNAPRO=m -# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set -CONFIG_TOUCHSCREEN_EETI=m -CONFIG_TOUCHSCREEN_FUJITSU=m -CONFIG_TOUCHSCREEN_GUNZE=m -CONFIG_TOUCHSCREEN_ELO=m -CONFIG_TOUCHSCREEN_WACOM_W8001=m -CONFIG_TOUCHSCREEN_MCS5000=m -CONFIG_TOUCHSCREEN_MTOUCH=m -CONFIG_TOUCHSCREEN_INEXIO=m -CONFIG_TOUCHSCREEN_MK712=m -CONFIG_TOUCHSCREEN_HTCPEN=m -CONFIG_TOUCHSCREEN_PENMOUNT=m -# CONFIG_TOUCHSCREEN_QT602240 is not set -CONFIG_TOUCHSCREEN_TOUCHRIGHT=m -CONFIG_TOUCHSCREEN_TOUCHWIN=m -# CONFIG_TOUCHSCREEN_UCB1400 is not set -CONFIG_TOUCHSCREEN_WM97XX=m -CONFIG_TOUCHSCREEN_WM9705=y -CONFIG_TOUCHSCREEN_WM9712=y -CONFIG_TOUCHSCREEN_WM9713=y -CONFIG_TOUCHSCREEN_USB_COMPOSITE=m -CONFIG_TOUCHSCREEN_USB_EGALAX=y -CONFIG_TOUCHSCREEN_USB_PANJIT=y -CONFIG_TOUCHSCREEN_USB_3M=y -CONFIG_TOUCHSCREEN_USB_ITM=y -CONFIG_TOUCHSCREEN_USB_ETURBO=y -CONFIG_TOUCHSCREEN_USB_GUNZE=y -CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y -CONFIG_TOUCHSCREEN_USB_IRTOUCH=y -CONFIG_TOUCHSCREEN_USB_IDEALTEK=y -CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y -CONFIG_TOUCHSCREEN_USB_GOTOP=y -CONFIG_TOUCHSCREEN_USB_JASTEC=y -CONFIG_TOUCHSCREEN_USB_E2I=y -CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y -CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y -CONFIG_TOUCHSCREEN_USB_NEXIO=y -CONFIG_TOUCHSCREEN_TOUCHIT213=m -CONFIG_TOUCHSCREEN_TSC2007=m -CONFIG_TOUCHSCREEN_PCAP=m -# CONFIG_TOUCHSCREEN_TPS6507X is not set -CONFIG_INPUT_MISC=y -# CONFIG_INPUT_AD714X is not set -CONFIG_INPUT_PCSPKR=m -CONFIG_INPUT_APANEL=m -CONFIG_INPUT_WISTRON_BTNS=m -CONFIG_INPUT_ATI_REMOTE=m -CONFIG_INPUT_ATI_REMOTE2=m -CONFIG_INPUT_KEYSPAN_REMOTE=m -CONFIG_INPUT_POWERMATE=m -CONFIG_INPUT_YEALINK=m -CONFIG_INPUT_CM109=m -CONFIG_INPUT_UINPUT=m -CONFIG_INPUT_WINBOND_CIR=m -CONFIG_INPUT_PCF50633_PMU=m -# CONFIG_INPUT_PCF8574 is not set -CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -CONFIG_INPUT_PCAP=m -# CONFIG_INPUT_ADXL34X is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_SERIO_I8042=y -CONFIG_SERIO_SERPORT=m -CONFIG_SERIO_CT82C710=m -CONFIG_SERIO_PARKBD=m -CONFIG_SERIO_PCIPS2=m -CONFIG_SERIO_LIBPS2=y -CONFIG_SERIO_RAW=m -CONFIG_SERIO_ALTERA_PS2=m -# CONFIG_SERIO_PS2MULT is not set -CONFIG_GAMEPORT=m -CONFIG_GAMEPORT_NS558=m -CONFIG_GAMEPORT_L4=m -CONFIG_GAMEPORT_EMU10K1=m -CONFIG_GAMEPORT_FM801=m - -# -# Character devices -# -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set -# CONFIG_DEVKMEM is not set -# CONFIG_SERIAL_NONSTANDARD is not set -# CONFIG_N_GSM is not set -CONFIG_NOZOMI=m - -# -# Serial drivers -# -CONFIG_SERIAL_8250=m -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_SERIAL_8250_PCI=m -CONFIG_SERIAL_8250_PNP=m -CONFIG_SERIAL_8250_NR_UARTS=2 -CONFIG_SERIAL_8250_RUNTIME_UARTS=2 -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_MANY_PORTS=y -CONFIG_SERIAL_8250_FOURPORT=m -CONFIG_SERIAL_8250_ACCENT=m -CONFIG_SERIAL_8250_BOCA=m -CONFIG_SERIAL_8250_EXAR_ST16C554=m -CONFIG_SERIAL_8250_HUB6=m -CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_DETECT_IRQ=y -CONFIG_SERIAL_8250_RSA=y - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_MAX3100=m -# CONFIG_SERIAL_MAX3107 is not set -# CONFIG_SERIAL_MRST_MAX3110 is not set -# CONFIG_SERIAL_MFD_HSU is not set -CONFIG_SERIAL_UARTLITE=m -CONFIG_SERIAL_CORE=m -CONFIG_SERIAL_JSM=m -CONFIG_SERIAL_TIMBERDALE=m -# CONFIG_SERIAL_ALTERA_JTAGUART is not set -# CONFIG_SERIAL_ALTERA_UART is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_TTY_PRINTK is not set -CONFIG_PRINTER=m -CONFIG_LP_CONSOLE=y -CONFIG_PPDEV=m -CONFIG_HVC_DRIVER=y -# CONFIG_VIRTIO_CONSOLE is not set -CONFIG_IPMI_HANDLER=m -# CONFIG_IPMI_PANIC_EVENT is not set -CONFIG_IPMI_DEVICE_INTERFACE=m -CONFIG_IPMI_SI=m -CONFIG_IPMI_WATCHDOG=m -CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m -CONFIG_HW_RANDOM_TIMERIOMEM=m -CONFIG_HW_RANDOM_INTEL=m -CONFIG_HW_RANDOM_AMD=m -CONFIG_HW_RANDOM_GEODE=m -CONFIG_HW_RANDOM_VIA=m -# CONFIG_HW_RANDOM_VIRTIO is not set -CONFIG_NVRAM=m -CONFIG_DTLK=m -CONFIG_R3964=m -CONFIG_APPLICOM=m -CONFIG_SONYPI=m -CONFIG_MWAVE=m -CONFIG_PC8736x_GPIO=m -CONFIG_NSC_GPIO=m -CONFIG_CS5535_GPIO=m -CONFIG_RAW_DRIVER=m -CONFIG_MAX_RAW_DEVS=256 -CONFIG_HANGCHECK_TIMER=m -CONFIG_TCG_TPM=m -CONFIG_TCG_TIS=m -CONFIG_TCG_NSC=m -CONFIG_TCG_ATMEL=m -CONFIG_TCG_INFINEON=m -CONFIG_TELCLOCK=m -CONFIG_DEVPORT=y -# CONFIG_RAMOOPS is not set -CONFIG_I2C=m -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_COMPAT=y -CONFIG_I2C_CHARDEV=m -# CONFIG_I2C_MUX is not set -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_SMBUS=m -CONFIG_I2C_ALGOBIT=m -CONFIG_I2C_ALGOPCF=m -CONFIG_I2C_ALGOPCA=m - -# -# I2C Hardware Bus support -# - -# -# PC SMBus host controller drivers -# -CONFIG_I2C_ALI1535=m -CONFIG_I2C_ALI1563=m -CONFIG_I2C_ALI15X3=m -CONFIG_I2C_AMD756=m -CONFIG_I2C_AMD756_S4882=m -CONFIG_I2C_AMD8111=m -CONFIG_I2C_I801=m -CONFIG_I2C_ISCH=m -CONFIG_I2C_PIIX4=m -CONFIG_I2C_NFORCE2=m -CONFIG_I2C_NFORCE2_S4985=m -CONFIG_I2C_SIS5595=m -CONFIG_I2C_SIS630=m -CONFIG_I2C_SIS96X=m -CONFIG_I2C_VIA=m -CONFIG_I2C_VIAPRO=m - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -# CONFIG_I2C_GPIO is not set -# CONFIG_I2C_INTEL_MID is not set -CONFIG_I2C_OCORES=m -CONFIG_I2C_PCA_PLATFORM=m -CONFIG_I2C_SIMTEC=m -CONFIG_I2C_XILINX=m - -# -# External I2C/SMBus adapter drivers -# -CONFIG_I2C_PARPORT=m -# CONFIG_I2C_PARPORT_LIGHT is not set -CONFIG_I2C_TAOS_EVM=m -# CONFIG_I2C_TINY_USB is not set - -# -# Other I2C/SMBus bus drivers -# -CONFIG_I2C_ELEKTOR=m -CONFIG_I2C_PCA_ISA=m -CONFIG_I2C_STUB=m -CONFIG_SCx200_ACB=m -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -CONFIG_SPI=y -CONFIG_SPI_MASTER=y - -# -# SPI Master Controller Drivers -# -CONFIG_SPI_BITBANG=m -CONFIG_SPI_BUTTERFLY=m -# CONFIG_SPI_GPIO is not set -CONFIG_SPI_LM70_LLP=m -# CONFIG_SPI_TOPCLIFF_PCH is not set -CONFIG_SPI_XILINX=m -CONFIG_SPI_XILINX_PLTFM=m -CONFIG_SPI_DESIGNWARE=m -CONFIG_SPI_DW_PCI=m - -# -# SPI Protocol Masters -# -CONFIG_SPI_SPIDEV=m -# CONFIG_SPI_TLE62X0 is not set - -# -# PPS support -# -CONFIG_PPS=m -# CONFIG_PPS_DEBUG is not set - -# -# PPS clients support -# -CONFIG_PPS_CLIENT_KTIMER=m -CONFIG_PPS_CLIENT_LDISC=m -CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -CONFIG_GPIOLIB=y -# CONFIG_GPIO_SYSFS is not set -CONFIG_GPIO_MAX730X=m - -# -# Memory mapped GPIO expanders: -# -# CONFIG_GPIO_BASIC_MMIO is not set -CONFIG_GPIO_IT8761E=m -CONFIG_GPIO_SCH=m -# CONFIG_GPIO_VX855 is not set - -# -# I2C GPIO expanders: -# -CONFIG_GPIO_MAX7300=m -CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCA953X=m -CONFIG_GPIO_PCF857X=m -CONFIG_GPIO_ADP5588=m - -# -# PCI GPIO expanders: -# -CONFIG_GPIO_CS5535=m -CONFIG_GPIO_LANGWELL=y -# CONFIG_GPIO_PCH is not set -CONFIG_GPIO_TIMBERDALE=y -# CONFIG_GPIO_RDC321X is not set - -# -# SPI GPIO expanders: -# -CONFIG_GPIO_MAX7301=m -CONFIG_GPIO_MCP23S08=m -CONFIG_GPIO_MC33880=m -# CONFIG_GPIO_74X164 is not set - -# -# AC97 GPIO expanders: -# -# CONFIG_GPIO_UCB1400 is not set - -# -# MODULbus GPIO expanders: -# -CONFIG_W1=m -CONFIG_W1_CON=y - -# -# 1-wire Bus Masters -# -CONFIG_W1_MASTER_MATROX=m -CONFIG_W1_MASTER_DS2490=m -CONFIG_W1_MASTER_DS2482=m -CONFIG_W1_MASTER_GPIO=m - -# -# 1-wire Slaves -# -CONFIG_W1_SLAVE_THERM=m -CONFIG_W1_SLAVE_SMEM=m -CONFIG_W1_SLAVE_DS2431=m -CONFIG_W1_SLAVE_DS2433=m -CONFIG_W1_SLAVE_DS2433_CRC=y -CONFIG_W1_SLAVE_DS2760=m -CONFIG_W1_SLAVE_BQ27000=m -CONFIG_POWER_SUPPLY=m -# CONFIG_POWER_SUPPLY_DEBUG is not set -CONFIG_PDA_POWER=m -# CONFIG_TEST_POWER is not set -CONFIG_BATTERY_DS2760=m -CONFIG_BATTERY_DS2782=m -# CONFIG_BATTERY_BQ20Z75 is not set -CONFIG_BATTERY_BQ27x00=m -CONFIG_BATTERY_MAX17040=m -CONFIG_CHARGER_PCF50633=m -# CONFIG_CHARGER_ISP1704 is not set -CONFIG_HWMON=m -CONFIG_HWMON_VID=m -# CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Native drivers -# -CONFIG_SENSORS_ABITUGURU=m -CONFIG_SENSORS_ABITUGURU3=m -CONFIG_SENSORS_AD7414=m -CONFIG_SENSORS_AD7418=m -CONFIG_SENSORS_ADCXX=m -CONFIG_SENSORS_ADM1021=m -CONFIG_SENSORS_ADM1025=m -CONFIG_SENSORS_ADM1026=m -CONFIG_SENSORS_ADM1029=m -CONFIG_SENSORS_ADM1031=m -CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADT7411=m -CONFIG_SENSORS_ADT7462=m -CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7475=m -CONFIG_SENSORS_ASC7621=m -CONFIG_SENSORS_K8TEMP=m -CONFIG_SENSORS_K10TEMP=m -CONFIG_SENSORS_ASB100=m -CONFIG_SENSORS_ATXP1=m -CONFIG_SENSORS_DS1621=m -CONFIG_SENSORS_I5K_AMB=m -CONFIG_SENSORS_F71805F=m -CONFIG_SENSORS_F71882FG=m -CONFIG_SENSORS_F75375S=m -CONFIG_SENSORS_FSCHMD=m -CONFIG_SENSORS_G760A=m -CONFIG_SENSORS_GL518SM=m -CONFIG_SENSORS_GL520SM=m -# CONFIG_SENSORS_GPIO_FAN is not set -CONFIG_SENSORS_CORETEMP=m -# CONFIG_SENSORS_PKGTEMP is not set -CONFIG_SENSORS_IBMAEM=m -CONFIG_SENSORS_IBMPEX=m -CONFIG_SENSORS_IT87=m -# CONFIG_SENSORS_JC42 is not set -CONFIG_SENSORS_LM63=m -CONFIG_SENSORS_LM70=m -CONFIG_SENSORS_LM73=m -CONFIG_SENSORS_LM75=m -CONFIG_SENSORS_LM77=m -CONFIG_SENSORS_LM78=m -CONFIG_SENSORS_LM80=m -CONFIG_SENSORS_LM83=m -CONFIG_SENSORS_LM85=m -CONFIG_SENSORS_LM87=m -CONFIG_SENSORS_LM90=m -CONFIG_SENSORS_LM92=m -CONFIG_SENSORS_LM93=m -CONFIG_SENSORS_LTC4215=m -CONFIG_SENSORS_LTC4245=m -# CONFIG_SENSORS_LTC4261 is not set -CONFIG_SENSORS_LM95241=m -CONFIG_SENSORS_MAX1111=m -CONFIG_SENSORS_MAX1619=m -CONFIG_SENSORS_MAX6650=m -CONFIG_SENSORS_PC87360=m -CONFIG_SENSORS_PC87427=m -CONFIG_SENSORS_PCF8591=m -CONFIG_SENSORS_SHT15=m -CONFIG_SENSORS_SIS5595=m -# CONFIG_SENSORS_SMM665 is not set -CONFIG_SENSORS_DME1737=m -# CONFIG_SENSORS_EMC1403 is not set -# CONFIG_SENSORS_EMC2103 is not set -CONFIG_SENSORS_SMSC47M1=m -CONFIG_SENSORS_SMSC47M192=m -CONFIG_SENSORS_SMSC47B397=m -CONFIG_SENSORS_ADS7828=m -# CONFIG_SENSORS_ADS7871 is not set -CONFIG_SENSORS_AMC6821=m -CONFIG_SENSORS_THMC50=m -# CONFIG_SENSORS_TMP102 is not set -CONFIG_SENSORS_TMP401=m -CONFIG_SENSORS_TMP421=m -CONFIG_SENSORS_VIA_CPUTEMP=m -CONFIG_SENSORS_VIA686A=m -CONFIG_SENSORS_VT1211=m -CONFIG_SENSORS_VT8231=m -CONFIG_SENSORS_W83781D=m -CONFIG_SENSORS_W83791D=m -CONFIG_SENSORS_W83792D=m -CONFIG_SENSORS_W83793=m -# CONFIG_SENSORS_W83795 is not set -CONFIG_SENSORS_W83L785TS=m -CONFIG_SENSORS_W83L786NG=m -CONFIG_SENSORS_W83627HF=m -CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_LIS3_SPI=m -CONFIG_SENSORS_LIS3_I2C=m -CONFIG_SENSORS_APPLESMC=m -CONFIG_THERMAL=m -CONFIG_THERMAL_HWMON=y -CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_NOWAYOUT is not set - -# -# Watchdog Device Drivers -# -CONFIG_SOFT_WATCHDOG=m -CONFIG_ACQUIRE_WDT=m -CONFIG_ADVANTECH_WDT=m -CONFIG_ALIM1535_WDT=m -CONFIG_ALIM7101_WDT=m -# CONFIG_F71808E_WDT is not set -CONFIG_GEODE_WDT=m -CONFIG_SC520_WDT=m -CONFIG_SBC_FITPC2_WATCHDOG=m -CONFIG_EUROTECH_WDT=m -CONFIG_IB700_WDT=m -CONFIG_IBMASR=m -CONFIG_WAFER_WDT=m -CONFIG_I6300ESB_WDT=m -CONFIG_ITCO_WDT=m -CONFIG_ITCO_VENDOR_SUPPORT=y -CONFIG_IT8712F_WDT=m -CONFIG_IT87_WDT=m -CONFIG_HP_WATCHDOG=m -# CONFIG_HPWDT_NMI_DECODING is not set -CONFIG_SC1200_WDT=m -CONFIG_PC87413_WDT=m -CONFIG_60XX_WDT=m -CONFIG_SBC8360_WDT=m -CONFIG_SBC7240_WDT=m -CONFIG_CPU5_WDT=m -CONFIG_SMSC_SCH311X_WDT=m -CONFIG_SMSC37B787_WDT=m -CONFIG_W83627HF_WDT=m -CONFIG_W83697HF_WDT=m -CONFIG_W83697UG_WDT=m -CONFIG_W83877F_WDT=m -CONFIG_W83977F_WDT=m -CONFIG_MACHZ_WDT=m -CONFIG_SBC_EPX_C3_WATCHDOG=m - -# -# ISA-based Watchdog Cards -# -CONFIG_PCWATCHDOG=m -CONFIG_MIXCOMWD=m -CONFIG_WDT=m - -# -# PCI-based Watchdog Cards -# -CONFIG_PCIPCWATCHDOG=m -CONFIG_WDTPCI=m - -# -# USB-based Watchdog Cards -# -CONFIG_USBPCWATCHDOG=m -CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# -CONFIG_SSB=m -CONFIG_SSB_SPROM=y -CONFIG_SSB_BLOCKIO=y -CONFIG_SSB_PCIHOST_POSSIBLE=y -CONFIG_SSB_PCIHOST=y -CONFIG_SSB_B43_PCI_BRIDGE=y -CONFIG_SSB_SDIOHOST_POSSIBLE=y -# CONFIG_SSB_SDIOHOST is not set -# CONFIG_SSB_SILENT is not set -# CONFIG_SSB_DEBUG is not set -CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y -CONFIG_SSB_DRIVER_PCICORE=y -CONFIG_MFD_SUPPORT=y -CONFIG_MFD_CORE=m -CONFIG_MFD_SM501=m -CONFIG_MFD_SM501_GPIO=y -CONFIG_HTC_PASIC3=m -CONFIG_UCB1400_CORE=m -CONFIG_TPS65010=m -# CONFIG_TPS6507X is not set -# CONFIG_MFD_TMIO is not set -CONFIG_MFD_WM8400=m -# CONFIG_MFD_WM831X_SPI is not set -CONFIG_MFD_PCF50633=m -# CONFIG_MFD_MC13XXX is not set -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -# CONFIG_ABX500_CORE is not set -CONFIG_EZX_PCAP=y -CONFIG_MFD_TIMBERDALE=m -CONFIG_LPC_SCH=m -# CONFIG_MFD_RDC321X is not set -# CONFIG_MFD_JANZ_CMODIO is not set -# CONFIG_MFD_VX855 is not set -CONFIG_REGULATOR=y -# CONFIG_REGULATOR_DEBUG is not set -# CONFIG_REGULATOR_DUMMY is not set -CONFIG_REGULATOR_FIXED_VOLTAGE=m -CONFIG_REGULATOR_VIRTUAL_CONSUMER=m -CONFIG_REGULATOR_USERSPACE_CONSUMER=m -CONFIG_REGULATOR_BQ24022=m -CONFIG_REGULATOR_MAX1586=m -CONFIG_REGULATOR_MAX8649=m -CONFIG_REGULATOR_MAX8660=m -# CONFIG_REGULATOR_MAX8952 is not set -CONFIG_REGULATOR_WM8400=m -CONFIG_REGULATOR_PCF50633=m -CONFIG_REGULATOR_LP3971=m -# CONFIG_REGULATOR_LP3972 is not set -CONFIG_REGULATOR_PCAP=m -CONFIG_REGULATOR_TPS65023=m -CONFIG_REGULATOR_TPS6507X=m -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_AD5398 is not set -CONFIG_MEDIA_SUPPORT=m - -# -# Multimedia core support -# -CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m -CONFIG_VIDEO_ALLOW_V4L1=y -CONFIG_VIDEO_V4L1_COMPAT=y -CONFIG_DVB_CORE=m -CONFIG_VIDEO_MEDIA=m - -# -# Multimedia drivers -# -CONFIG_VIDEO_SAA7146=m -CONFIG_VIDEO_SAA7146_VV=m -CONFIG_IR_CORE=m -CONFIG_VIDEO_IR=m -CONFIG_LIRC=m -CONFIG_RC_MAP=m -CONFIG_IR_NEC_DECODER=m -CONFIG_IR_RC5_DECODER=m -CONFIG_IR_RC6_DECODER=m -CONFIG_IR_JVC_DECODER=m -CONFIG_IR_SONY_DECODER=m -CONFIG_IR_RC5_SZ_DECODER=m -CONFIG_IR_LIRC_CODEC=m -# CONFIG_IR_ENE is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_NUVOTON is not set -# CONFIG_IR_STREAMZAP is not set -CONFIG_MEDIA_ATTACH=y -CONFIG_MEDIA_TUNER=m -CONFIG_MEDIA_TUNER_CUSTOMISE=y - -# -# Customize TV tuners -# -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_MT2060=m -CONFIG_MEDIA_TUNER_MT2266=m -CONFIG_MEDIA_TUNER_MT2131=m -CONFIG_MEDIA_TUNER_QT1010=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_MXL5005S=m -CONFIG_MEDIA_TUNER_MXL5007T=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_MEDIA_TUNER_MAX2165=m -CONFIG_MEDIA_TUNER_TDA18218=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_V4L1=m -CONFIG_VIDEOBUF_GEN=m -CONFIG_VIDEOBUF_DMA_SG=m -CONFIG_VIDEOBUF_VMALLOC=m -CONFIG_VIDEOBUF_DVB=m -CONFIG_VIDEO_BTCX=m -CONFIG_VIDEO_TVEEPROM=m -CONFIG_VIDEO_TUNER=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -CONFIG_VIDEO_HELPER_CHIPS_AUTO=y -CONFIG_VIDEO_IR_I2C=m - -# -# Audio decoders -# -CONFIG_VIDEO_TVAUDIO=m -CONFIG_VIDEO_TDA7432=m -CONFIG_VIDEO_TDA9840=m -CONFIG_VIDEO_TEA6415C=m -CONFIG_VIDEO_TEA6420=m -CONFIG_VIDEO_MSP3400=m -CONFIG_VIDEO_CS5345=m -CONFIG_VIDEO_CS53L32A=m -CONFIG_VIDEO_M52790=m -CONFIG_VIDEO_WM8775=m -CONFIG_VIDEO_WM8739=m -CONFIG_VIDEO_VP27SMPX=m - -# -# RDS decoders -# -CONFIG_VIDEO_SAA6588=m - -# -# Video decoders -# -CONFIG_VIDEO_BT819=m -CONFIG_VIDEO_BT856=m -CONFIG_VIDEO_BT866=m -CONFIG_VIDEO_KS0127=m -CONFIG_VIDEO_OV7670=m -CONFIG_VIDEO_SAA7110=m -CONFIG_VIDEO_SAA711X=m -CONFIG_VIDEO_SAA717X=m -CONFIG_VIDEO_VPX3220=m - -# -# Video and audio decoders -# -CONFIG_VIDEO_CX25840=m - -# -# MPEG video encoders -# -CONFIG_VIDEO_CX2341X=m - -# -# Video encoders -# -CONFIG_VIDEO_SAA7127=m -CONFIG_VIDEO_SAA7185=m -CONFIG_VIDEO_ADV7170=m -CONFIG_VIDEO_ADV7175=m - -# -# Video improvement chips -# -CONFIG_VIDEO_UPD64031A=m -CONFIG_VIDEO_UPD64083=m -CONFIG_VIDEO_VIVI=m -CONFIG_VIDEO_BT848=m -CONFIG_VIDEO_BT848_DVB=y -CONFIG_VIDEO_PMS=m -CONFIG_VIDEO_BWQCAM=m -CONFIG_VIDEO_CQCAM=m -CONFIG_VIDEO_W9966=m -# CONFIG_VIDEO_CPIA2 is not set -CONFIG_VIDEO_ZORAN=m -CONFIG_VIDEO_ZORAN_DC30=m -CONFIG_VIDEO_ZORAN_ZR36060=m -CONFIG_VIDEO_ZORAN_BUZ=m -CONFIG_VIDEO_ZORAN_DC10=m -CONFIG_VIDEO_ZORAN_LML33=m -CONFIG_VIDEO_ZORAN_LML33R10=m -CONFIG_VIDEO_ZORAN_AVS6EYES=m -CONFIG_VIDEO_SAA7134=m -# CONFIG_VIDEO_SAA7134_ALSA is not set -CONFIG_VIDEO_SAA7134_RC=y -CONFIG_VIDEO_SAA7134_DVB=m -CONFIG_VIDEO_MXB=m -CONFIG_VIDEO_HEXIUM_ORION=m -CONFIG_VIDEO_HEXIUM_GEMINI=m -CONFIG_VIDEO_CX88=m -# CONFIG_VIDEO_CX88_ALSA is not set -CONFIG_VIDEO_CX88_BLACKBIRD=m -CONFIG_VIDEO_CX88_DVB=m -CONFIG_VIDEO_CX88_MPEG=m -CONFIG_VIDEO_CX88_VP3054=m -CONFIG_VIDEO_CX23885=m -# CONFIG_VIDEO_AU0828 is not set -CONFIG_VIDEO_IVTV=m -# CONFIG_VIDEO_FB_IVTV is not set -CONFIG_VIDEO_CX18=m -# CONFIG_VIDEO_CX18_ALSA is not set -CONFIG_VIDEO_SAA7164=m -CONFIG_VIDEO_CAFE_CCIC=m -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_VIA_CAMERA is not set -CONFIG_SOC_CAMERA=m -# CONFIG_SOC_CAMERA_IMX074 is not set -# CONFIG_SOC_CAMERA_MT9M001 is not set -# CONFIG_SOC_CAMERA_MT9M111 is not set -# CONFIG_SOC_CAMERA_MT9T031 is not set -# CONFIG_SOC_CAMERA_MT9T112 is not set -# CONFIG_SOC_CAMERA_MT9V022 is not set -# CONFIG_SOC_CAMERA_RJ54N1 is not set -# CONFIG_SOC_CAMERA_TW9910 is not set -# CONFIG_SOC_CAMERA_PLATFORM is not set -# CONFIG_SOC_CAMERA_OV6650 is not set -# CONFIG_SOC_CAMERA_OV772X is not set -# CONFIG_SOC_CAMERA_OV9640 is not set -CONFIG_V4L_USB_DRIVERS=y -# CONFIG_USB_VIDEO_CLASS is not set -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -CONFIG_USB_GSPCA=m -# CONFIG_USB_M5602 is not set -# CONFIG_USB_STV06XX is not set -# CONFIG_USB_GL860 is not set -# CONFIG_USB_GSPCA_BENQ is not set -# CONFIG_USB_GSPCA_CONEX is not set -# CONFIG_USB_GSPCA_CPIA1 is not set -# CONFIG_USB_GSPCA_ETOMS is not set -# CONFIG_USB_GSPCA_FINEPIX is not set -# CONFIG_USB_GSPCA_JEILINJ is not set -# CONFIG_USB_GSPCA_KONICA is not set -# CONFIG_USB_GSPCA_MARS is not set -# CONFIG_USB_GSPCA_MR97310A is not set -# CONFIG_USB_GSPCA_OV519 is not set -# CONFIG_USB_GSPCA_OV534 is not set -# CONFIG_USB_GSPCA_OV534_9 is not set -# CONFIG_USB_GSPCA_PAC207 is not set -# CONFIG_USB_GSPCA_PAC7302 is not set -# CONFIG_USB_GSPCA_PAC7311 is not set -# CONFIG_USB_GSPCA_SN9C2028 is not set -# CONFIG_USB_GSPCA_SN9C20X is not set -# CONFIG_USB_GSPCA_SONIXB is not set -# CONFIG_USB_GSPCA_SONIXJ is not set -# CONFIG_USB_GSPCA_SPCA500 is not set -# CONFIG_USB_GSPCA_SPCA501 is not set -# CONFIG_USB_GSPCA_SPCA505 is not set -# CONFIG_USB_GSPCA_SPCA506 is not set -# CONFIG_USB_GSPCA_SPCA508 is not set -# CONFIG_USB_GSPCA_SPCA561 is not set -# CONFIG_USB_GSPCA_SPCA1528 is not set -# CONFIG_USB_GSPCA_SQ905 is not set -# CONFIG_USB_GSPCA_SQ905C is not set -# CONFIG_USB_GSPCA_SQ930X is not set -# CONFIG_USB_GSPCA_STK014 is not set -# CONFIG_USB_GSPCA_STV0680 is not set -# CONFIG_USB_GSPCA_SUNPLUS is not set -# CONFIG_USB_GSPCA_T613 is not set -# CONFIG_USB_GSPCA_TV8532 is not set -# CONFIG_USB_GSPCA_VC032X is not set -# CONFIG_USB_GSPCA_XIRLINK_CIT is not set -# CONFIG_USB_GSPCA_ZC3XX is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_TLG2300 is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_VICAM is not set -# CONFIG_USB_IBMCAM is not set -# CONFIG_USB_KONICAWC is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_SE401 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -CONFIG_RADIO_ADAPTERS=y -CONFIG_RADIO_CADET=m -CONFIG_RADIO_RTRACK=m -CONFIG_RADIO_RTRACK2=m -CONFIG_RADIO_AZTECH=m -CONFIG_RADIO_GEMTEK=m -CONFIG_RADIO_GEMTEK_PCI=m -CONFIG_RADIO_MAXIRADIO=m -CONFIG_RADIO_MAESTRO=m -# CONFIG_RADIO_MIROPCM20 is not set -CONFIG_RADIO_SF16FMI=m -CONFIG_RADIO_SF16FMR2=m -CONFIG_RADIO_TERRATEC=m -CONFIG_RADIO_TRUST=m -CONFIG_RADIO_TYPHOON=m -CONFIG_RADIO_ZOLTRIX=m -CONFIG_I2C_SI4713=m -CONFIG_RADIO_SI4713=m -# CONFIG_USB_DSBR is not set -CONFIG_RADIO_SI470X=y -# CONFIG_USB_SI470X is not set -CONFIG_I2C_SI470X=m -# CONFIG_USB_MR800 is not set -CONFIG_RADIO_TEA5764=m -CONFIG_RADIO_SAA7706H=m -CONFIG_RADIO_TEF6862=m -CONFIG_RADIO_TIMBERDALE=m -CONFIG_DVB_MAX_ADAPTERS=8 -CONFIG_DVB_DYNAMIC_MINORS=y -CONFIG_DVB_CAPTURE_DRIVERS=y - -# -# Supported SAA7146 based PCI Adapters -# -CONFIG_TTPCI_EEPROM=m -CONFIG_DVB_AV7110=m -CONFIG_DVB_AV7110_OSD=y -CONFIG_DVB_BUDGET_CORE=m -CONFIG_DVB_BUDGET=m -CONFIG_DVB_BUDGET_CI=m -CONFIG_DVB_BUDGET_AV=m -CONFIG_DVB_BUDGET_PATCH=m - -# -# Supported USB Adapters -# -# CONFIG_DVB_USB is not set -# CONFIG_DVB_TTUSB_BUDGET is not set -# CONFIG_DVB_TTUSB_DEC is not set -CONFIG_SMS_SIANO_MDTV=m - -# -# Siano module components -# -# CONFIG_SMS_USB_DRV is not set -# CONFIG_SMS_SDIO_DRV is not set - -# -# Supported FlexCopII (B2C2) Adapters -# -CONFIG_DVB_B2C2_FLEXCOP=m -CONFIG_DVB_B2C2_FLEXCOP_PCI=m -# CONFIG_DVB_B2C2_FLEXCOP_USB is not set -# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set - -# -# Supported BT878 Adapters -# -CONFIG_DVB_BT8XX=m - -# -# Supported Pluto2 Adapters -# -CONFIG_DVB_PLUTO2=m - -# -# Supported SDMC DM1105 Adapters -# -CONFIG_DVB_DM1105=m -CONFIG_DVB_FIREDTV=m -CONFIG_DVB_FIREDTV_FIREWIRE=y -# CONFIG_DVB_FIREDTV_IEEE1394 is not set -CONFIG_DVB_FIREDTV_INPUT=y - -# -# Supported Earthsoft PT1 Adapters -# -CONFIG_DVB_PT1=m - -# -# Supported Mantis Adapters -# -CONFIG_MANTIS_CORE=m -CONFIG_DVB_MANTIS=m -CONFIG_DVB_HOPPER=m - -# -# Supported nGene Adapters -# -CONFIG_DVB_NGENE=m - -# -# Supported DVB Frontends -# -# CONFIG_DVB_FE_CUSTOMISE is not set - -# -# Multistandard (satellite) frontends -# -CONFIG_DVB_STB0899=m -CONFIG_DVB_STB6100=m -CONFIG_DVB_STV090x=m -CONFIG_DVB_STV6110x=m - -# -# DVB-S (satellite) frontends -# -CONFIG_DVB_CX24110=m -CONFIG_DVB_CX24123=m -CONFIG_DVB_MT312=m -CONFIG_DVB_ZL10036=m -CONFIG_DVB_ZL10039=m -CONFIG_DVB_S5H1420=m -CONFIG_DVB_STV0288=m -CONFIG_DVB_STB6000=m -CONFIG_DVB_STV0299=m -CONFIG_DVB_STV6110=m -CONFIG_DVB_STV0900=m -CONFIG_DVB_TDA8083=m -CONFIG_DVB_TDA10086=m -CONFIG_DVB_TDA8261=m -CONFIG_DVB_VES1X93=m -CONFIG_DVB_TUNER_ITD1000=m -CONFIG_DVB_TUNER_CX24113=m -CONFIG_DVB_TDA826X=m -CONFIG_DVB_TUA6100=m -CONFIG_DVB_CX24116=m -CONFIG_DVB_SI21XX=m -CONFIG_DVB_DS3000=m -CONFIG_DVB_MB86A16=m - -# -# DVB-T (terrestrial) frontends -# -CONFIG_DVB_SP8870=m -CONFIG_DVB_SP887X=m -CONFIG_DVB_CX22702=m -CONFIG_DVB_L64781=m -CONFIG_DVB_TDA1004X=m -CONFIG_DVB_NXT6000=m -CONFIG_DVB_MT352=m -CONFIG_DVB_ZL10353=m -CONFIG_DVB_DIB7000P=m -CONFIG_DVB_TDA10048=m - -# -# DVB-C (cable) frontends -# -CONFIG_DVB_VES1820=m -CONFIG_DVB_TDA10021=m -CONFIG_DVB_TDA10023=m -CONFIG_DVB_STV0297=m - -# -# ATSC (North American/Korean Terrestrial/Cable DTV) frontends -# -CONFIG_DVB_NXT200X=m -CONFIG_DVB_OR51211=m -CONFIG_DVB_OR51132=m -CONFIG_DVB_BCM3510=m -CONFIG_DVB_LGDT330X=m -CONFIG_DVB_LGDT3305=m -CONFIG_DVB_S5H1409=m -CONFIG_DVB_S5H1411=m - -# -# ISDB-T (terrestrial) frontends -# - -# -# Digital terrestrial only tuners/PLL -# -CONFIG_DVB_PLL=m - -# -# SEC control devices for DVB-S -# -CONFIG_DVB_LNBP21=m -CONFIG_DVB_ISL6405=m -CONFIG_DVB_ISL6421=m -CONFIG_DVB_ISL6423=m -CONFIG_DVB_TDA665x=m - -# -# Tools to develop new frontends -# -# CONFIG_DVB_DUMMY_FE is not set -CONFIG_DAB=y -CONFIG_USB_DABUSB=m - -# -# Graphics support -# -CONFIG_AGP=m -CONFIG_AGP_ALI=m -CONFIG_AGP_ATI=m -CONFIG_AGP_AMD=m -CONFIG_AGP_AMD64=m -CONFIG_AGP_INTEL=m -CONFIG_AGP_NVIDIA=m -CONFIG_AGP_SIS=m -CONFIG_AGP_SWORKS=m -CONFIG_AGP_VIA=m -CONFIG_AGP_EFFICEON=m -CONFIG_VGA_ARB=y -CONFIG_VGA_ARB_MAX_GPUS=16 -CONFIG_DRM=m -CONFIG_DRM_KMS_HELPER=m -CONFIG_DRM_TTM=m -# CONFIG_DRM_TDFX is not set -# CONFIG_DRM_R128 is not set -# CONFIG_DRM_RADEON is not set -# CONFIG_DRM_I810 is not set -# CONFIG_DRM_MGA is not set -# CONFIG_DRM_SIS is not set -# CONFIG_DRM_VIA is not set -# CONFIG_DRM_SAVAGE is not set -CONFIG_STUB_POULSBO=m -CONFIG_VGASTATE=m -CONFIG_VIDEO_OUTPUT_CONTROL=m -CONFIG_FB=m -CONFIG_FIRMWARE_EDID=y -CONFIG_FB_DDC=m -# CONFIG_FB_BOOT_VESA_SUPPORT is not set -CONFIG_FB_CFB_FILLRECT=m -CONFIG_FB_CFB_COPYAREA=m -CONFIG_FB_CFB_IMAGEBLIT=m -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set -CONFIG_FB_SYS_FILLRECT=m -CONFIG_FB_SYS_COPYAREA=m -CONFIG_FB_SYS_IMAGEBLIT=m -CONFIG_FB_FOREIGN_ENDIAN=y -CONFIG_FB_BOTH_ENDIAN=y -# CONFIG_FB_BIG_ENDIAN is not set -# CONFIG_FB_LITTLE_ENDIAN is not set -CONFIG_FB_SYS_FOPS=m -CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_HECUBA=m -CONFIG_FB_SVGALIB=m -# CONFIG_FB_MACMODES is not set -CONFIG_FB_BACKLIGHT=y -CONFIG_FB_MODE_HELPERS=y -CONFIG_FB_TILEBLITTING=y - -# -# Frame buffer hardware drivers -# -CONFIG_FB_CIRRUS=m -CONFIG_FB_PM2=m -CONFIG_FB_PM2_FIFO_DISCONNECT=y -CONFIG_FB_CYBER2000=m -CONFIG_FB_ARC=m -CONFIG_FB_VGA16=m -CONFIG_FB_UVESA=m -CONFIG_FB_N411=m -CONFIG_FB_HGA=m -CONFIG_FB_HGA_ACCEL=y -CONFIG_FB_S1D13XXX=m -CONFIG_FB_NVIDIA=m -CONFIG_FB_NVIDIA_I2C=y -CONFIG_FB_NVIDIA_DEBUG=y -CONFIG_FB_NVIDIA_BACKLIGHT=y -CONFIG_FB_RIVA=m -CONFIG_FB_RIVA_I2C=y -# CONFIG_FB_RIVA_DEBUG is not set -CONFIG_FB_RIVA_BACKLIGHT=y -# CONFIG_FB_I810 is not set -CONFIG_FB_LE80578=m -CONFIG_FB_CARILLO_RANCH=m -CONFIG_FB_INTEL=m -# CONFIG_FB_INTEL_DEBUG is not set -CONFIG_FB_INTEL_I2C=y -CONFIG_FB_MATROX=m -CONFIG_FB_MATROX_MILLENIUM=y -CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -CONFIG_FB_MATROX_I2C=m -CONFIG_FB_MATROX_MAVEN=m -CONFIG_FB_RADEON=m -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -CONFIG_FB_ATY128=m -CONFIG_FB_ATY128_BACKLIGHT=y -CONFIG_FB_ATY=m -CONFIG_FB_ATY_CT=y -CONFIG_FB_ATY_GENERIC_LCD=y -CONFIG_FB_ATY_GX=y -CONFIG_FB_ATY_BACKLIGHT=y -CONFIG_FB_S3=m -CONFIG_FB_SAVAGE=m -CONFIG_FB_SAVAGE_I2C=y -CONFIG_FB_SAVAGE_ACCEL=y -CONFIG_FB_SIS=m -CONFIG_FB_SIS_300=y -CONFIG_FB_SIS_315=y -CONFIG_FB_VIA=m -# CONFIG_FB_VIA_DIRECT_PROCFS is not set -CONFIG_FB_NEOMAGIC=m -CONFIG_FB_KYRO=m -CONFIG_FB_3DFX=m -CONFIG_FB_3DFX_ACCEL=y -CONFIG_FB_3DFX_I2C=y -CONFIG_FB_VOODOO1=m -CONFIG_FB_VT8623=m -CONFIG_FB_TRIDENT=m -CONFIG_FB_ARK=m -CONFIG_FB_PM3=m -CONFIG_FB_CARMINE=m -CONFIG_FB_CARMINE_DRAM_EVAL=y -# CONFIG_CARMINE_DRAM_CUSTOM is not set -CONFIG_FB_GEODE=y -CONFIG_FB_GEODE_LX=m -CONFIG_FB_GEODE_GX=m -CONFIG_FB_GEODE_GX1=m -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m -CONFIG_FB_VIRTUAL=m -CONFIG_FB_METRONOME=m -CONFIG_FB_MB862XX=m -CONFIG_FB_MB862XX_PCI_GDC=y -CONFIG_FB_BROADSHEET=m -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=m -CONFIG_LCD_L4F00242T03=m -CONFIG_LCD_LMS283GF05=m -CONFIG_LCD_LTV350QV=m -CONFIG_LCD_ILI9320=m -CONFIG_LCD_TDO24M=m -CONFIG_LCD_VGG2432A4=m -CONFIG_LCD_PLATFORM=m -# CONFIG_LCD_S6E63M0 is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=m -CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_PROGEAR=m -CONFIG_BACKLIGHT_CARILLO_RANCH=m -CONFIG_BACKLIGHT_MBP_NVIDIA=m -CONFIG_BACKLIGHT_SAHARA=m -# CONFIG_BACKLIGHT_ADP8860 is not set -# CONFIG_BACKLIGHT_PCF50633 is not set - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=m - -# -# Display hardware drivers -# - -# -# Console display driver support -# -CONFIG_VGA_CONSOLE=y -# CONFIG_VGACON_SOFT_SCROLLBACK is not set -CONFIG_MDA_CONSOLE=m -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=m -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -# CONFIG_LOGO is not set -CONFIG_SOUND=m -CONFIG_SOUND_OSS_CORE=y -CONFIG_SOUND_OSS_CORE_PRECLAIM=y -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m -CONFIG_SND_HWDEP=m -CONFIG_SND_RAWMIDI=m -CONFIG_SND_JACK=y -CONFIG_SND_SEQUENCER=m -CONFIG_SND_SEQ_DUMMY=m -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -CONFIG_SND_SEQUENCER_OSS=y -CONFIG_SND_DYNAMIC_MINORS=y -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set -CONFIG_SND_VMASTER=y -CONFIG_SND_DMA_SGBUF=y -CONFIG_SND_RAWMIDI_SEQ=m -CONFIG_SND_OPL3_LIB_SEQ=m -CONFIG_SND_OPL4_LIB_SEQ=m -CONFIG_SND_SBAWE_SEQ=m -CONFIG_SND_EMU10K1_SEQ=m -CONFIG_SND_MPU401_UART=m -CONFIG_SND_OPL3_LIB=m -CONFIG_SND_OPL4_LIB=m -CONFIG_SND_VX_LIB=m -CONFIG_SND_AC97_CODEC=m -CONFIG_SND_DRIVERS=y -CONFIG_SND_DUMMY=m -# CONFIG_SND_ALOOP is not set -CONFIG_SND_VIRMIDI=m -CONFIG_SND_MTPAV=m -CONFIG_SND_MTS64=m -CONFIG_SND_SERIAL_U16550=m -CONFIG_SND_MPU401=m -CONFIG_SND_PORTMAN2X4=m -# CONFIG_SND_AC97_POWER_SAVE is not set -CONFIG_SND_WSS_LIB=m -CONFIG_SND_SB_COMMON=m -CONFIG_SND_SB8_DSP=m -CONFIG_SND_SB16_DSP=m -CONFIG_SND_ISA=y -CONFIG_SND_ADLIB=m -CONFIG_SND_AD1816A=m -CONFIG_SND_AD1848=m -CONFIG_SND_ALS100=m -# CONFIG_SND_AZT1605 is not set -# CONFIG_SND_AZT2316 is not set -CONFIG_SND_AZT2320=m -CONFIG_SND_CMI8330=m -CONFIG_SND_CS4231=m -CONFIG_SND_CS4236=m -CONFIG_SND_ES1688=m -CONFIG_SND_ES18XX=m -CONFIG_SND_SC6000=m -CONFIG_SND_GUSCLASSIC=m -CONFIG_SND_GUSEXTREME=m -CONFIG_SND_GUSMAX=m -CONFIG_SND_INTERWAVE=m -CONFIG_SND_INTERWAVE_STB=m -CONFIG_SND_JAZZ16=m -CONFIG_SND_OPL3SA2=m -CONFIG_SND_OPTI92X_AD1848=m -CONFIG_SND_OPTI92X_CS4231=m -CONFIG_SND_OPTI93X=m -CONFIG_SND_MIRO=m -CONFIG_SND_SB8=m -CONFIG_SND_SB16=m -CONFIG_SND_SBAWE=m -CONFIG_SND_SB16_CSP=y -CONFIG_SND_SSCAPE=m -CONFIG_SND_WAVEFRONT=m -CONFIG_SND_MSND_PINNACLE=m -CONFIG_SND_MSND_CLASSIC=m -CONFIG_SND_PCI=y -CONFIG_SND_AD1889=m -CONFIG_SND_ALS300=m -CONFIG_SND_ALS4000=m -CONFIG_SND_ALI5451=m -# CONFIG_SND_ASIHPI is not set -CONFIG_SND_ATIIXP=m -CONFIG_SND_ATIIXP_MODEM=m -CONFIG_SND_AU8810=m -CONFIG_SND_AU8820=m -CONFIG_SND_AU8830=m -CONFIG_SND_AW2=m -CONFIG_SND_AZT3328=m -CONFIG_SND_BT87X=m -# CONFIG_SND_BT87X_OVERCLOCK is not set -CONFIG_SND_CA0106=m -CONFIG_SND_CMIPCI=m -CONFIG_SND_OXYGEN_LIB=m -CONFIG_SND_OXYGEN=m -CONFIG_SND_CS4281=m -CONFIG_SND_CS46XX=m -CONFIG_SND_CS46XX_NEW_DSP=y -CONFIG_SND_CS5530=m -CONFIG_SND_CS5535AUDIO=m -CONFIG_SND_CTXFI=m -CONFIG_SND_DARLA20=m -CONFIG_SND_GINA20=m -CONFIG_SND_LAYLA20=m -CONFIG_SND_DARLA24=m -CONFIG_SND_GINA24=m -CONFIG_SND_LAYLA24=m -CONFIG_SND_MONA=m -CONFIG_SND_MIA=m -CONFIG_SND_ECHO3G=m -CONFIG_SND_INDIGO=m -CONFIG_SND_INDIGOIO=m -CONFIG_SND_INDIGODJ=m -CONFIG_SND_INDIGOIOX=m -CONFIG_SND_INDIGODJX=m -CONFIG_SND_EMU10K1=m -CONFIG_SND_EMU10K1X=m -CONFIG_SND_ENS1370=m -CONFIG_SND_ENS1371=m -CONFIG_SND_ES1938=m -CONFIG_SND_ES1968=m -# CONFIG_SND_ES1968_INPUT is not set -CONFIG_SND_FM801=m -# CONFIG_SND_FM801_TEA575X_BOOL is not set -CONFIG_SND_HDA_INTEL=m -# CONFIG_SND_HDA_HWDEP is not set -# CONFIG_SND_HDA_INPUT_BEEP is not set -# CONFIG_SND_HDA_INPUT_JACK is not set -# CONFIG_SND_HDA_PATCH_LOADER is not set -CONFIG_SND_HDA_CODEC_REALTEK=y -CONFIG_SND_HDA_CODEC_ANALOG=y -CONFIG_SND_HDA_CODEC_SIGMATEL=y -CONFIG_SND_HDA_CODEC_VIA=y -CONFIG_SND_HDA_CODEC_HDMI=y -CONFIG_SND_HDA_CODEC_CIRRUS=y -CONFIG_SND_HDA_CODEC_CONEXANT=y -CONFIG_SND_HDA_CODEC_CA0110=y -CONFIG_SND_HDA_CODEC_CMEDIA=y -CONFIG_SND_HDA_CODEC_SI3054=y -CONFIG_SND_HDA_GENERIC=y -# CONFIG_SND_HDA_POWER_SAVE is not set -CONFIG_SND_HDSP=m -CONFIG_SND_HDSPM=m -CONFIG_SND_HIFIER=m -CONFIG_SND_ICE1712=m -CONFIG_SND_ICE1724=m -CONFIG_SND_INTEL8X0=m -CONFIG_SND_INTEL8X0M=m -CONFIG_SND_KORG1212=m -CONFIG_SND_LX6464ES=m -CONFIG_SND_MAESTRO3=m -# CONFIG_SND_MAESTRO3_INPUT is not set -CONFIG_SND_MIXART=m -CONFIG_SND_NM256=m -CONFIG_SND_PCXHR=m -CONFIG_SND_RIPTIDE=m -CONFIG_SND_RME32=m -CONFIG_SND_RME96=m -CONFIG_SND_RME9652=m -CONFIG_SND_SIS7019=m -CONFIG_SND_SONICVIBES=m -CONFIG_SND_TRIDENT=m -CONFIG_SND_VIA82XX=m -CONFIG_SND_VIA82XX_MODEM=m -CONFIG_SND_VIRTUOSO=m -CONFIG_SND_VX222=m -CONFIG_SND_YMFPCI=m -CONFIG_SND_SPI=y -CONFIG_SND_USB=y -CONFIG_SND_USB_AUDIO=m -CONFIG_SND_USB_UA101=m -CONFIG_SND_USB_USX2Y=m -CONFIG_SND_USB_CAIAQ=m -CONFIG_SND_USB_CAIAQ_INPUT=y -CONFIG_SND_USB_US122L=m -CONFIG_SND_SOC=m -CONFIG_SND_SOC_I2C_AND_SPI=m -CONFIG_SND_SOC_ALL_CODECS=m -CONFIG_SND_SOC_WM_HUBS=m -CONFIG_SND_SOC_AD1836=m -CONFIG_SND_SOC_AD193X=m -CONFIG_SND_SOC_AD73311=m -CONFIG_SND_SOC_ADS117X=m -CONFIG_SND_SOC_AK4104=m -CONFIG_SND_SOC_AK4535=m -CONFIG_SND_SOC_AK4642=m -CONFIG_SND_SOC_AK4671=m -CONFIG_SND_SOC_CS42L51=m -CONFIG_SND_SOC_CS4270=m -CONFIG_SND_SOC_CX20442=m -CONFIG_SND_SOC_L3=m -CONFIG_SND_SOC_DA7210=m -CONFIG_SND_SOC_MAX98088=m -CONFIG_SND_SOC_PCM3008=m -CONFIG_SND_SOC_SPDIF=m -CONFIG_SND_SOC_SSM2602=m -CONFIG_SND_SOC_TLV320AIC23=m -CONFIG_SND_SOC_TLV320AIC26=m -CONFIG_SND_SOC_TLV320AIC3X=m -CONFIG_SND_SOC_TLV320DAC33=m -CONFIG_SND_SOC_UDA134X=m -CONFIG_SND_SOC_UDA1380=m -CONFIG_SND_SOC_WM8400=m -CONFIG_SND_SOC_WM8510=m -CONFIG_SND_SOC_WM8523=m -CONFIG_SND_SOC_WM8580=m -CONFIG_SND_SOC_WM8711=m -CONFIG_SND_SOC_WM8727=m -CONFIG_SND_SOC_WM8728=m -CONFIG_SND_SOC_WM8731=m -CONFIG_SND_SOC_WM8741=m -CONFIG_SND_SOC_WM8750=m -CONFIG_SND_SOC_WM8753=m -CONFIG_SND_SOC_WM8776=m -CONFIG_SND_SOC_WM8804=m -CONFIG_SND_SOC_WM8900=m -CONFIG_SND_SOC_WM8903=m -CONFIG_SND_SOC_WM8904=m -CONFIG_SND_SOC_WM8940=m -CONFIG_SND_SOC_WM8955=m -CONFIG_SND_SOC_WM8960=m -CONFIG_SND_SOC_WM8961=m -CONFIG_SND_SOC_WM8962=m -CONFIG_SND_SOC_WM8971=m -CONFIG_SND_SOC_WM8974=m -CONFIG_SND_SOC_WM8978=m -CONFIG_SND_SOC_WM8985=m -CONFIG_SND_SOC_WM8988=m -CONFIG_SND_SOC_WM8990=m -CONFIG_SND_SOC_WM8993=m -CONFIG_SND_SOC_WM9081=m -CONFIG_SND_SOC_MAX9877=m -CONFIG_SND_SOC_TPA6130A2=m -CONFIG_SND_SOC_WM2000=m -CONFIG_SND_SOC_WM9090=m -# CONFIG_SOUND_PRIME is not set -CONFIG_AC97_BUS=m -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -CONFIG_HIDRAW=y - -# -# USB Input Devices -# -CONFIG_USB_HID=m -CONFIG_HID_PID=y -CONFIG_USB_HIDDEV=y - -# -# USB HID Boot Protocol drivers -# -CONFIG_USB_KBD=m -CONFIG_USB_MOUSE=m - -# -# Special HID drivers -# -CONFIG_HID_3M_PCT=m -CONFIG_HID_A4TECH=m -# CONFIG_HID_ACRUX_FF is not set -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -# CONFIG_HID_CANDO is not set -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -# CONFIG_HID_PRODIKEYS is not set -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -CONFIG_DRAGONRISE_FF=y -# CONFIG_HID_EGALAX is not set -# CONFIG_HID_ELECOM is not set -CONFIG_HID_EZKEY=m -CONFIG_HID_KYE=m -# CONFIG_HID_UCLOGIC is not set -# CONFIG_HID_WALTOP is not set -CONFIG_HID_GYRATION=m -CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m -CONFIG_HID_LOGITECH=m -CONFIG_LOGITECH_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y -CONFIG_LOGIG940_FF=y -# CONFIG_LOGIWII_FF is not set -CONFIG_HID_MAGICMOUSE=m -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MOSART=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_NTRIG=m -CONFIG_HID_ORTEK=m -CONFIG_HID_PANTHERLORD=m -CONFIG_PANTHERLORD_FF=y -CONFIG_HID_PETALYNX=m -# CONFIG_HID_PICOLCD is not set -CONFIG_HID_QUANTA=m -# CONFIG_HID_ROCCAT is not set -# CONFIG_HID_ROCCAT_KONE is not set -# CONFIG_HID_ROCCAT_PYRA is not set -CONFIG_HID_SAMSUNG=m -CONFIG_HID_SONY=m -CONFIG_HID_STANTUM=m -CONFIG_HID_SUNPLUS=m -CONFIG_HID_GREENASIA=m -CONFIG_GREENASIA_FF=y -CONFIG_HID_SMARTJOYPLUS=m -CONFIG_SMARTJOYPLUS_FF=y -CONFIG_HID_TOPSEED=m -CONFIG_HID_THRUSTMASTER=m -# CONFIG_THRUSTMASTER_FF is not set -CONFIG_HID_WACOM=m -# CONFIG_HID_WACOM_POWER_SUPPLY is not set -CONFIG_HID_ZEROPLUS=m -CONFIG_ZEROPLUS_FF=y -# CONFIG_HID_ZYDACRON is not set -CONFIG_USB_SUPPORT=y -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=m -# CONFIG_USB_DEBUG is not set -# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set - -# -# Miscellaneous USB options -# -# CONFIG_USB_DEVICEFS is not set -CONFIG_USB_DEVICE_CLASS=y -CONFIG_USB_DYNAMIC_MINORS=y -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OTG_BLACKLIST_HUB is not set -CONFIG_USB_MON=m -CONFIG_USB_WUSB=m -CONFIG_USB_WUSB_CBAF=m -# CONFIG_USB_WUSB_CBAF_DEBUG is not set - -# -# USB Host Controller Drivers -# -CONFIG_USB_C67X00_HCD=m -CONFIG_USB_XHCI_HCD=m -CONFIG_USB_XHCI_HCD_DEBUGGING=y -CONFIG_USB_EHCI_HCD=m -CONFIG_USB_EHCI_ROOT_HUB_TT=y -CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m -CONFIG_USB_ISP1760_HCD=m -CONFIG_USB_ISP1362_HCD=m -CONFIG_USB_OHCI_HCD=m -CONFIG_USB_OHCI_HCD_SSB=y -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=m -# CONFIG_USB_U132_HCD is not set -CONFIG_USB_SL811_HCD=m -CONFIG_USB_R8A66597_HCD=m -CONFIG_USB_WHCI_HCD=m -CONFIG_USB_HWA_HCD=m - -# -# USB Device Class drivers -# -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=m -CONFIG_USB_WDM=m -CONFIG_USB_TMC=m - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -# - -# -# also be needed; see USB_STORAGE Help for more info -# -CONFIG_USB_STORAGE=m -# CONFIG_USB_STORAGE_DEBUG is not set -CONFIG_USB_STORAGE_DATAFAB=m -CONFIG_USB_STORAGE_FREECOM=m -CONFIG_USB_STORAGE_ISD200=m -CONFIG_USB_STORAGE_USBAT=m -CONFIG_USB_STORAGE_SDDR09=m -CONFIG_USB_STORAGE_SDDR55=m -CONFIG_USB_STORAGE_JUMPSHOT=m -CONFIG_USB_STORAGE_ALAUDA=m -CONFIG_USB_STORAGE_ONETOUCH=m -CONFIG_USB_STORAGE_KARMA=m -CONFIG_USB_STORAGE_CYPRESS_ATACB=m -# CONFIG_USB_UAS is not set -# CONFIG_USB_LIBUSUAL is not set - -# -# USB Imaging devices -# -CONFIG_USB_MDC800=m -CONFIG_USB_MICROTEK=m - -# -# USB port drivers -# -CONFIG_USB_USS720=m -CONFIG_USB_SERIAL=m -# CONFIG_USB_EZUSB is not set -# CONFIG_USB_SERIAL_GENERIC is not set -# CONFIG_USB_SERIAL_AIRCABLE is not set -# CONFIG_USB_SERIAL_ARK3116 is not set -# CONFIG_USB_SERIAL_BELKIN is not set -# CONFIG_USB_SERIAL_CH341 is not set -# CONFIG_USB_SERIAL_WHITEHEAT is not set -# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -# CONFIG_USB_SERIAL_CP210X is not set -# CONFIG_USB_SERIAL_CYPRESS_M8 is not set -# CONFIG_USB_SERIAL_EMPEG is not set -# CONFIG_USB_SERIAL_FTDI_SIO is not set -# CONFIG_USB_SERIAL_FUNSOFT is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set -# CONFIG_USB_SERIAL_EDGEPORT is not set -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -# CONFIG_USB_SERIAL_GARMIN is not set -# CONFIG_USB_SERIAL_IPW is not set -# CONFIG_USB_SERIAL_IUU is not set -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -# CONFIG_USB_SERIAL_MCT_U232 is not set -# CONFIG_USB_SERIAL_MOS7720 is not set -# CONFIG_USB_SERIAL_MOS7840 is not set -# CONFIG_USB_SERIAL_MOTOROLA is not set -# CONFIG_USB_SERIAL_NAVMAN is not set -# CONFIG_USB_SERIAL_PL2303 is not set -# CONFIG_USB_SERIAL_OTI6858 is not set -# CONFIG_USB_SERIAL_QCAUX is not set -# CONFIG_USB_SERIAL_QUALCOMM is not set -# CONFIG_USB_SERIAL_SPCP8X5 is not set -# CONFIG_USB_SERIAL_HP4X is not set -# CONFIG_USB_SERIAL_SAFE is not set -# CONFIG_USB_SERIAL_SAMBA is not set -# CONFIG_USB_SERIAL_SIEMENS_MPI is not set -# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set -# CONFIG_USB_SERIAL_SYMBOL is not set -# CONFIG_USB_SERIAL_TI is not set -# CONFIG_USB_SERIAL_CYBERJACK is not set -# CONFIG_USB_SERIAL_XIRCOM is not set -# CONFIG_USB_SERIAL_OPTION is not set -# CONFIG_USB_SERIAL_OMNINET is not set -# CONFIG_USB_SERIAL_OPTICON is not set -# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set -# CONFIG_USB_SERIAL_ZIO is not set -# CONFIG_USB_SERIAL_SSU100 is not set -# CONFIG_USB_SERIAL_DEBUG is not set - -# -# USB Miscellaneous drivers -# -CONFIG_USB_EMI62=m -CONFIG_USB_EMI26=m -CONFIG_USB_ADUTUX=m -CONFIG_USB_SEVSEG=m -CONFIG_USB_RIO500=m -CONFIG_USB_LEGOTOWER=m -CONFIG_USB_LCD=m -CONFIG_USB_LED=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m -CONFIG_USB_IDMOUSE=m -CONFIG_USB_FTDI_ELAN=m -CONFIG_USB_APPLEDISPLAY=m -CONFIG_USB_SISUSBVGA=m -CONFIG_USB_SISUSBVGA_CON=y -CONFIG_USB_LD=m -CONFIG_USB_TRANCEVIBRATOR=m -CONFIG_USB_IOWARRIOR=m -CONFIG_USB_TEST=m -CONFIG_USB_ISIGHTFW=m -# CONFIG_USB_YUREX is not set -CONFIG_USB_GADGET=m -# CONFIG_USB_GADGET_DEBUG_FILES is not set -CONFIG_USB_GADGET_VBUS_DRAW=2 -CONFIG_USB_GADGET_SELECTED=y -CONFIG_USB_GADGET_R8A66597=y -CONFIG_USB_R8A66597=m -# CONFIG_USB_GADGET_M66592 is not set -# CONFIG_USB_GADGET_AMD5536UDC is not set -# CONFIG_USB_GADGET_CI13XXX is not set -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LANGWELL is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set -CONFIG_USB_GADGET_DUALSPEED=y -# CONFIG_USB_ZERO is not set -# CONFIG_USB_AUDIO is not set -# CONFIG_USB_ETH is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FUNCTIONFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_MASS_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set -# CONFIG_USB_MIDI_GADGET is not set -# CONFIG_USB_G_PRINTER is not set -# CONFIG_USB_CDC_COMPOSITE is not set -# CONFIG_USB_G_NOKIA is not set -# CONFIG_USB_G_MULTI is not set -# CONFIG_USB_G_HID is not set -# CONFIG_USB_G_DBGP is not set -# CONFIG_USB_G_WEBCAM is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m -CONFIG_NOP_USB_XCEIV=m -CONFIG_UWB=m -CONFIG_UWB_HWA=m -CONFIG_UWB_WHCI=m -CONFIG_UWB_I1480U=m -CONFIG_MMC=m -# CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_UNSAFE_RESUME is not set - -# -# MMC/SD/SDIO Card Drivers -# -CONFIG_MMC_BLOCK=m -CONFIG_MMC_BLOCK_MINORS=8 -CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_SDIO_UART=m -CONFIG_MMC_TEST=m - -# -# MMC/SD/SDIO Host Controller Drivers -# -CONFIG_MMC_SDHCI=m -CONFIG_MMC_SDHCI_PCI=m -CONFIG_MMC_RICOH_MMC=y -CONFIG_MMC_SDHCI_PLTFM=m -CONFIG_MMC_WBSD=m -CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_SPI=m -CONFIG_MMC_CB710=m -CONFIG_MMC_VIA_SDMMC=m -# CONFIG_MMC_USHC is not set -CONFIG_MEMSTICK=m -# CONFIG_MEMSTICK_DEBUG is not set - -# -# MemoryStick drivers -# -# CONFIG_MEMSTICK_UNSAFE_RESUME is not set -CONFIG_MSPRO_BLOCK=m - -# -# MemoryStick Host Controller Drivers -# -CONFIG_MEMSTICK_TIFM_MS=m -CONFIG_MEMSTICK_JMICRON_38X=m -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y - -# -# LED drivers -# -# CONFIG_LEDS_NET5501 is not set -CONFIG_LEDS_ALIX2=m -CONFIG_LEDS_PCA9532=m -CONFIG_LEDS_GPIO=m -CONFIG_LEDS_GPIO_PLATFORM=y -CONFIG_LEDS_LP3944=m -# CONFIG_LEDS_LP5521 is not set -# CONFIG_LEDS_LP5523 is not set -CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_DAC124S085=m -CONFIG_LEDS_REGULATOR=m -CONFIG_LEDS_BD2802=m -CONFIG_LEDS_LT3593=m -CONFIG_LEDS_TRIGGERS=y - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_HEARTBEAT=m -CONFIG_LEDS_TRIGGER_BACKLIGHT=m -CONFIG_LEDS_TRIGGER_GPIO=m -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m - -# -# iptables trigger is under Netfilter config (LED target) -# -CONFIG_ACCESSIBILITY=y -CONFIG_INFINIBAND=m -CONFIG_INFINIBAND_USER_MAD=m -CONFIG_INFINIBAND_USER_ACCESS=m -CONFIG_INFINIBAND_USER_MEM=y -CONFIG_INFINIBAND_ADDR_TRANS=y -CONFIG_INFINIBAND_MTHCA=m -# CONFIG_INFINIBAND_MTHCA_DEBUG is not set -CONFIG_INFINIBAND_AMSO1100=m -# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set -CONFIG_INFINIBAND_CXGB3=m -# CONFIG_INFINIBAND_CXGB3_DEBUG is not set -# CONFIG_INFINIBAND_CXGB4 is not set -CONFIG_MLX4_INFINIBAND=m -CONFIG_INFINIBAND_NES=m -# CONFIG_INFINIBAND_NES_DEBUG is not set -CONFIG_INFINIBAND_IPOIB=m -CONFIG_INFINIBAND_IPOIB_CM=y -# CONFIG_INFINIBAND_IPOIB_DEBUG is not set -CONFIG_INFINIBAND_SRP=m -CONFIG_INFINIBAND_ISER=m -CONFIG_EDAC=y - -# -# Reporting subsystems -# -# CONFIG_EDAC_DEBUG is not set -CONFIG_EDAC_MM_EDAC=m -CONFIG_EDAC_AMD76X=m -CONFIG_EDAC_E7XXX=m -CONFIG_EDAC_I82875P=m -CONFIG_EDAC_I82975X=m -CONFIG_EDAC_I3000=m -CONFIG_EDAC_I3200=m -CONFIG_EDAC_X38=m -CONFIG_EDAC_I5400=m -# CONFIG_EDAC_I7CORE is not set -CONFIG_EDAC_I82860=m -CONFIG_EDAC_R82600=m -CONFIG_EDAC_I5000=m -CONFIG_EDAC_I5100=m -# CONFIG_EDAC_I7300 is not set -CONFIG_RTC_LIB=m -CONFIG_RTC_CLASS=m - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -CONFIG_RTC_INTF_DEV_UIE_EMUL=y -# CONFIG_RTC_DRV_TEST is not set - -# -# I2C RTC drivers -# -CONFIG_RTC_DRV_DS1307=m -CONFIG_RTC_DRV_DS1374=m -CONFIG_RTC_DRV_DS1672=m -# CONFIG_RTC_DRV_DS3232 is not set -CONFIG_RTC_DRV_MAX6900=m -CONFIG_RTC_DRV_RS5C372=m -CONFIG_RTC_DRV_ISL1208=m -# CONFIG_RTC_DRV_ISL12022 is not set -CONFIG_RTC_DRV_X1205=m -CONFIG_RTC_DRV_PCF8563=m -CONFIG_RTC_DRV_PCF8583=m -CONFIG_RTC_DRV_M41T80=m -CONFIG_RTC_DRV_M41T80_WDT=y -CONFIG_RTC_DRV_BQ32K=m -CONFIG_RTC_DRV_S35390A=m -CONFIG_RTC_DRV_FM3130=m -CONFIG_RTC_DRV_RX8581=m -CONFIG_RTC_DRV_RX8025=m - -# -# SPI RTC drivers -# -CONFIG_RTC_DRV_M41T94=m -CONFIG_RTC_DRV_DS1305=m -CONFIG_RTC_DRV_DS1390=m -CONFIG_RTC_DRV_MAX6902=m -CONFIG_RTC_DRV_R9701=m -CONFIG_RTC_DRV_RS5C348=m -CONFIG_RTC_DRV_DS3234=m -CONFIG_RTC_DRV_PCF2123=m - -# -# Platform RTC drivers -# -CONFIG_RTC_DRV_CMOS=m -CONFIG_RTC_DRV_DS1286=m -CONFIG_RTC_DRV_DS1511=m -CONFIG_RTC_DRV_DS1553=m -CONFIG_RTC_DRV_DS1742=m -CONFIG_RTC_DRV_STK17TA8=m -CONFIG_RTC_DRV_M48T86=m -CONFIG_RTC_DRV_M48T35=m -CONFIG_RTC_DRV_M48T59=m -CONFIG_RTC_DRV_MSM6242=m -CONFIG_RTC_DRV_BQ4802=m -CONFIG_RTC_DRV_RP5C01=m -CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_PCF50633=m - -# -# on-CPU RTC drivers -# -CONFIG_RTC_DRV_PCAP=m -CONFIG_DMADEVICES=y -# CONFIG_DMADEVICES_DEBUG is not set - -# -# DMA Devices -# -# CONFIG_INTEL_MID_DMAC is not set -CONFIG_INTEL_IOATDMA=m -# CONFIG_TIMB_DMA is not set -# CONFIG_PCH_DMA is not set -CONFIG_DMA_ENGINE=y - -# -# DMA Clients -# -CONFIG_NET_DMA=y -CONFIG_ASYNC_TX_DMA=y -# CONFIG_DMATEST is not set -CONFIG_DCA=m -CONFIG_AUXDISPLAY=y -CONFIG_KS0108=m -CONFIG_KS0108_PORT=0x378 -CONFIG_KS0108_DELAY=2 -CONFIG_CFAG12864B=m -CONFIG_CFAG12864B_RATE=20 -CONFIG_UIO=m -CONFIG_UIO_CIF=m -CONFIG_UIO_PDRV=m -CONFIG_UIO_PDRV_GENIRQ=m -CONFIG_UIO_AEC=m -CONFIG_UIO_SERCOS3=m -CONFIG_UIO_PCI_GENERIC=m -CONFIG_UIO_NETX=m -CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set -CONFIG_ET131X=m -CONFIG_ET131X_DEBUG=y -CONFIG_SLICOSS=m -CONFIG_VIDEO_GO7007=m -CONFIG_VIDEO_GO7007_USB=m -CONFIG_VIDEO_GO7007_OV7640=m -CONFIG_VIDEO_GO7007_SAA7113=m -CONFIG_VIDEO_GO7007_SAA7115=m -CONFIG_VIDEO_GO7007_TW9903=m -CONFIG_VIDEO_GO7007_UDA1342=m -CONFIG_VIDEO_GO7007_SONY_TUNER=m -CONFIG_VIDEO_GO7007_TW2804=m -CONFIG_VIDEO_CX25821=m -CONFIG_VIDEO_CX25821_ALSA=m -# CONFIG_VIDEO_TM6000 is not set -CONFIG_VIDEO_CPIA=m -CONFIG_VIDEO_CPIA_PP=m -# CONFIG_VIDEO_CPIA_USB is not set -CONFIG_VIDEO_STRADIS=m -CONFIG_USB_IP_COMMON=m -CONFIG_USB_IP_VHCI_HCD=m -CONFIG_USB_IP_HOST=m -# CONFIG_USB_IP_DEBUG_ENABLE is not set -CONFIG_W35UND=m -CONFIG_PRISM2_USB=m -CONFIG_ECHO=m -# CONFIG_BRCM80211 is not set -CONFIG_RT2860=m -CONFIG_RT2870=m -CONFIG_COMEDI=m -# CONFIG_COMEDI_DEBUG is not set -# CONFIG_COMEDI_MISC_DRIVERS is not set -# CONFIG_COMEDI_ISA_DRIVERS is not set -CONFIG_COMEDI_PCI_DRIVERS=m -# CONFIG_COMEDI_ADDI_APCI_035 is not set -# CONFIG_COMEDI_ADDI_APCI_1032 is not set -# CONFIG_COMEDI_ADDI_APCI_1500 is not set -# CONFIG_COMEDI_ADDI_APCI_1516 is not set -# CONFIG_COMEDI_ADDI_APCI_1564 is not set -# CONFIG_COMEDI_ADDI_APCI_16XX is not set -# CONFIG_COMEDI_ADDI_APCI_2016 is not set -# CONFIG_COMEDI_ADDI_APCI_2032 is not set -# CONFIG_COMEDI_ADDI_APCI_2200 is not set -# CONFIG_COMEDI_ADDI_APCI_3001 is not set -# CONFIG_COMEDI_ADDI_APCI_3120 is not set -# CONFIG_COMEDI_ADDI_APCI_3501 is not set -# CONFIG_COMEDI_ADDI_APCI_3XXX is not set -# CONFIG_COMEDI_ADL_PCI6208 is not set -# CONFIG_COMEDI_ADL_PCI7230 is not set -# CONFIG_COMEDI_ADL_PCI7296 is not set -# CONFIG_COMEDI_ADL_PCI7432 is not set -# CONFIG_COMEDI_ADL_PCI8164 is not set -# CONFIG_COMEDI_ADL_PCI9111 is not set -# CONFIG_COMEDI_ADL_PCI9118 is not set -# CONFIG_COMEDI_ADV_PCI1710 is not set -# CONFIG_COMEDI_ADV_PCI1723 is not set -# CONFIG_COMEDI_ADV_PCI_DIO is not set -# CONFIG_COMEDI_AMPLC_DIO200 is not set -# CONFIG_COMEDI_AMPLC_PC236 is not set -# CONFIG_COMEDI_AMPLC_PC263 is not set -# CONFIG_COMEDI_AMPLC_PCI224 is not set -# CONFIG_COMEDI_AMPLC_PCI230 is not set -# CONFIG_COMEDI_CONTEC_PCI_DIO is not set -# CONFIG_COMEDI_DT3000 is not set -# CONFIG_COMEDI_UNIOXX5 is not set -# CONFIG_COMEDI_GSC_HPDI is not set -# CONFIG_COMEDI_ICP_MULTI is not set -# CONFIG_COMEDI_II_PCI20KC is not set -# CONFIG_COMEDI_DAQBOARD2000 is not set -# CONFIG_COMEDI_JR3_PCI is not set -# CONFIG_COMEDI_KE_COUNTER is not set -# CONFIG_COMEDI_CB_PCIDAS64 is not set -# CONFIG_COMEDI_CB_PCIDAS is not set -# CONFIG_COMEDI_CB_PCIDDA is not set -# CONFIG_COMEDI_CB_PCIDIO is not set -# CONFIG_COMEDI_CB_PCIMDAS is not set -# CONFIG_COMEDI_CB_PCIMDDA is not set -# CONFIG_COMEDI_ME4000 is not set -# CONFIG_COMEDI_ME_DAQ is not set -# CONFIG_COMEDI_RTD520 is not set -# CONFIG_COMEDI_S526 is not set -# CONFIG_COMEDI_S626 is not set -# CONFIG_COMEDI_SSV_DNP is not set -CONFIG_COMEDI_USB_DRIVERS=m -# CONFIG_COMEDI_DT9812 is not set -# CONFIG_COMEDI_USBDUX is not set -# CONFIG_COMEDI_USBDUXFAST is not set -# CONFIG_COMEDI_VMK80XX is not set -# CONFIG_COMEDI_NI_COMMON is not set -# CONFIG_COMEDI_8255 is not set -# CONFIG_COMEDI_DAS08 is not set -# CONFIG_COMEDI_FC is not set -CONFIG_ASUS_OLED=m -CONFIG_PANEL=m -CONFIG_PANEL_PARPORT=0 -CONFIG_PANEL_PROFILE=5 -# CONFIG_PANEL_CHANGE_MESSAGE is not set -CONFIG_R8187SE=m -CONFIG_RTL8192U=m -CONFIG_RTL8192E=m -# CONFIG_R8712U is not set -CONFIG_TRANZPORT=m -CONFIG_POHMELFS=m -# CONFIG_POHMELFS_DEBUG is not set -# CONFIG_POHMELFS_CRYPTO is not set -CONFIG_AUTOFS_FS=m -CONFIG_IDE_PHISON=m -# CONFIG_LINE6_USB is not set -CONFIG_DRM_VMWGFX=m -CONFIG_DRM_NOUVEAU=m -CONFIG_DRM_NOUVEAU_BACKLIGHT=y - -# -# I2C encoder or helper chips -# -CONFIG_DRM_I2C_CH7006=m -CONFIG_DRM_I2C_SIL164=m -CONFIG_USB_SERIAL_QUATECH2=m -CONFIG_USB_SERIAL_QUATECH_USB2=m -CONFIG_VT6655=m -CONFIG_VT6656=m -CONFIG_FB_UDL=m -CONFIG_HYPERV=m -CONFIG_HYPERV_STORAGE=m -CONFIG_HYPERV_NET=m -CONFIG_HYPERV_UTILS=m -CONFIG_VME_BUS=m - -# -# VME Bridge Drivers -# -CONFIG_VME_CA91CX42=m -CONFIG_VME_TSI148=m - -# -# VME Device Drivers -# -CONFIG_VME_USER=m - -# -# VME Board Drivers -# -CONFIG_VMIVME_7805=m -CONFIG_IIO=m -CONFIG_IIO_RING_BUFFER=y -CONFIG_IIO_SW_RING=m -CONFIG_IIO_TRIGGER=y - -# -# Accelerometers -# -# CONFIG_ADIS16209 is not set -# CONFIG_ADIS16220 is not set -# CONFIG_ADIS16240 is not set -CONFIG_KXSD9=m -CONFIG_LIS3L02DQ=m -CONFIG_SCA3000=m - -# -# Analog to digital convertors -# -CONFIG_MAX1363=m -CONFIG_MAX1363_RING_BUFFER=y -# CONFIG_AD799X is not set -# CONFIG_AD7476 is not set - -# -# Digital gyroscope sensors -# -# CONFIG_ADIS16260 is not set - -# -# Inertial measurement units -# -# CONFIG_ADIS16300 is not set -# CONFIG_ADIS16350 is not set -# CONFIG_ADIS16400 is not set - -# -# Light sensors -# -CONFIG_SENSORS_TSL2563=m -# CONFIG_SENSORS_ISL29018 is not set - -# -# Magnetometer sensors -# -# CONFIG_SENSORS_AK8975 is not set -# CONFIG_SENSORS_HMC5843 is not set - -# -# Triggers - standalone -# -CONFIG_IIO_PERIODIC_RTC_TRIGGER=m -CONFIG_IIO_GPIO_TRIGGER=m -# CONFIG_ZRAM is not set -CONFIG_BATMAN_ADV=m -# CONFIG_BATMAN_ADV_DEBUG is not set -CONFIG_SAMSUNG_LAPTOP=m -CONFIG_FB_SM7XX=m -# CONFIG_VIDEO_DT3155 is not set -CONFIG_CRYSTALHD=m -# CONFIG_CXT1E1 is not set - -# -# Texas Instruments shared transport line discipline -# -# CONFIG_ST_BT is not set -# CONFIG_ADIS16255 is not set -# CONFIG_FB_XGI is not set -# CONFIG_LIRC_STAGING is not set -CONFIG_SMB_FS=m -CONFIG_SMB_NLS_DEFAULT=y -CONFIG_SMB_NLS_REMOTE="cp437" -# CONFIG_EASYCAP is not set -# CONFIG_SOLO6X10 is not set -CONFIG_MACH_NO_WESTBRIDGE=y -# CONFIG_SBE_2T3E3 is not set -# CONFIG_ATH6K_LEGACY is not set -# CONFIG_USB_ENESTORAGE is not set -# CONFIG_BCM_WIMAX is not set -# CONFIG_FT1000 is not set - -# -# Speakup console speech -# -# CONFIG_SPEAKUP is not set -CONFIG_X86_PLATFORM_DEVICES=y -CONFIG_SENSORS_HDAPS=m -# CONFIG_IBM_RTL is not set - -# -# Firmware Drivers -# -# CONFIG_EDD is not set -# CONFIG_FIRMWARE_MEMMAP is not set -# CONFIG_DELL_RBU is not set -# CONFIG_DCDBAS is not set -# CONFIG_ISCSI_IBFT_FIND is not set - -# -# File systems -# -CONFIG_EXT2_FS=m -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -CONFIG_EXT2_FS_XIP=y -CONFIG_EXT3_FS=m -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_EXT4_FS=m -CONFIG_EXT4_FS_XATTR=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXT4_FS_SECURITY=y -# CONFIG_EXT4_DEBUG is not set -CONFIG_FS_XIP=y -CONFIG_JBD=m -CONFIG_JBD2=m -CONFIG_FS_MBCACHE=m -CONFIG_REISERFS_FS=m -# CONFIG_REISERFS_CHECK is not set -# CONFIG_REISERFS_PROC_INFO is not set -CONFIG_REISERFS_FS_XATTR=y -CONFIG_REISERFS_FS_POSIX_ACL=y -CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_DEBUG is not set -# CONFIG_JFS_STATISTICS is not set -CONFIG_FS_POSIX_ACL=y -CONFIG_XFS_FS=m -CONFIG_XFS_QUOTA=y -CONFIG_XFS_POSIX_ACL=y -CONFIG_XFS_RT=y -# CONFIG_XFS_DEBUG is not set -# CONFIG_OCFS2_FS is not set -CONFIG_BTRFS_FS=m -CONFIG_BTRFS_FS_POSIX_ACL=y -CONFIG_NILFS2_FS=m -CONFIG_EXPORTFS=m -CONFIG_FILE_LOCKING=y -CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=y -CONFIG_INOTIFY_USER=y -# CONFIG_FANOTIFY is not set -CONFIG_QUOTA=y -CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_PRINT_QUOTA_WARNING=y -CONFIG_QUOTA_DEBUG=y -CONFIG_QUOTA_TREE=m -# CONFIG_QFMT_V1 is not set -CONFIG_QFMT_V2=m -CONFIG_QUOTACTL=y -CONFIG_AUTOFS4_FS=m -CONFIG_FUSE_FS=m -CONFIG_CUSE=m - -# -# Caches -# -CONFIG_FSCACHE=m -# CONFIG_FSCACHE_STATS is not set -# CONFIG_FSCACHE_HISTOGRAM is not set -# CONFIG_FSCACHE_DEBUG is not set -# CONFIG_FSCACHE_OBJECT_LIST is not set -CONFIG_CACHEFILES=m -# CONFIG_CACHEFILES_DEBUG is not set -CONFIG_CACHEFILES_HISTOGRAM=y - -# -# CD-ROM/DVD Filesystems -# -CONFIG_ISO9660_FS=m -CONFIG_JOLIET=y -CONFIG_ZISOFS=y -CONFIG_UDF_FS=m -CONFIG_UDF_NLS=y - -# -# DOS/FAT/NT Filesystems -# -CONFIG_FAT_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -CONFIG_NTFS_FS=m -# CONFIG_NTFS_DEBUG is not set -# CONFIG_NTFS_RW is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -# CONFIG_PROC_KCORE is not set -CONFIG_PROC_SYSCTL=y -# CONFIG_PROC_PAGE_MONITOR is not set -CONFIG_SYSFS=y -# CONFIG_HUGETLBFS is not set -# CONFIG_HUGETLB_PAGE is not set -CONFIG_CONFIGFS_FS=m -CONFIG_MISC_FILESYSTEMS=y -CONFIG_ADFS_FS=m -# CONFIG_ADFS_FS_RW is not set -CONFIG_AFFS_FS=m -# CONFIG_ECRYPT_FS is not set -CONFIG_HFS_FS=m -CONFIG_HFSPLUS_FS=m -CONFIG_BEFS_FS=m -# CONFIG_BEFS_DEBUG is not set -CONFIG_BFS_FS=m -CONFIG_EFS_FS=m -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -CONFIG_JFFS2_FS_WBUF_VERIFY=y -# CONFIG_JFFS2_SUMMARY is not set -CONFIG_JFFS2_FS_XATTR=y -# CONFIG_JFFS2_FS_POSIX_ACL is not set -# CONFIG_JFFS2_FS_SECURITY is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -CONFIG_JFFS2_LZO=y -CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_RUBIN=y -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set -CONFIG_UBIFS_FS=m -CONFIG_UBIFS_FS_XATTR=y -CONFIG_UBIFS_FS_ADVANCED_COMPR=y -CONFIG_UBIFS_FS_LZO=y -CONFIG_UBIFS_FS_ZLIB=y -# CONFIG_UBIFS_FS_DEBUG is not set -CONFIG_LOGFS=m -CONFIG_CRAMFS=m -CONFIG_SQUASHFS=m -# CONFIG_SQUASHFS_XATTR is not set -# CONFIG_SQUASHFS_LZO is not set -# CONFIG_SQUASHFS_XZ is not set -# CONFIG_SQUASHFS_EMBEDDED is not set -CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 -CONFIG_VXFS_FS=m -CONFIG_MINIX_FS=m -CONFIG_OMFS_FS=m -CONFIG_HPFS_FS=m -CONFIG_QNX4FS_FS=m -CONFIG_ROMFS_FS=m -CONFIG_ROMFS_BACKED_BY_BLOCK=y -# CONFIG_ROMFS_BACKED_BY_MTD is not set -# CONFIG_ROMFS_BACKED_BY_BOTH is not set -CONFIG_ROMFS_ON_BLOCK=y -CONFIG_SYSV_FS=m -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set -# CONFIG_UFS_DEBUG is not set -CONFIG_EXOFS_FS=m -# CONFIG_EXOFS_DEBUG is not set -CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NFS_FS=m -CONFIG_NFS_V3=y -CONFIG_NFS_V3_ACL=y -# CONFIG_NFS_V4 is not set -CONFIG_NFS_FSCACHE=y -CONFIG_NFSD=m -CONFIG_NFSD_DEPRECATED=y -CONFIG_NFSD_V2_ACL=y -CONFIG_NFSD_V3=y -CONFIG_NFSD_V3_ACL=y -# CONFIG_NFSD_V4 is not set -CONFIG_LOCKD=m -CONFIG_LOCKD_V4=y -CONFIG_NFS_ACL_SUPPORT=m -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=m -CONFIG_SUNRPC_GSS=m -CONFIG_SUNRPC_XPRT_RDMA=m -CONFIG_RPCSEC_GSS_KRB5=m -CONFIG_CEPH_FS=m -CONFIG_CIFS=m -CONFIG_CIFS_STATS=y -CONFIG_CIFS_STATS2=y -CONFIG_CIFS_WEAK_PW_HASH=y -# CONFIG_CIFS_UPCALL is not set -CONFIG_CIFS_XATTR=y -CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_FSCACHE is not set -# CONFIG_CIFS_ACL is not set -CONFIG_CIFS_EXPERIMENTAL=y -CONFIG_NCP_FS=m -CONFIG_NCPFS_PACKET_SIGNING=y -CONFIG_NCPFS_IOCTL_LOCKING=y -CONFIG_NCPFS_STRONG=y -CONFIG_NCPFS_NFS_NS=y -CONFIG_NCPFS_OS2_NS=y -CONFIG_NCPFS_SMALLDOS=y -CONFIG_NCPFS_NLS=y -CONFIG_NCPFS_EXTRAS=y -CONFIG_CODA_FS=m -CONFIG_AFS_FS=m -# CONFIG_AFS_DEBUG is not set -CONFIG_AFS_FSCACHE=y - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_NLS=m -CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_CODEPAGE_437=m -CONFIG_NLS_CODEPAGE_737=m -CONFIG_NLS_CODEPAGE_775=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_CODEPAGE_852=m -CONFIG_NLS_CODEPAGE_855=m -CONFIG_NLS_CODEPAGE_857=m -CONFIG_NLS_CODEPAGE_860=m -CONFIG_NLS_CODEPAGE_861=m -CONFIG_NLS_CODEPAGE_862=m -CONFIG_NLS_CODEPAGE_863=m -CONFIG_NLS_CODEPAGE_864=m -CONFIG_NLS_CODEPAGE_865=m -CONFIG_NLS_CODEPAGE_866=m -CONFIG_NLS_CODEPAGE_869=m -CONFIG_NLS_CODEPAGE_936=m -CONFIG_NLS_CODEPAGE_950=m -CONFIG_NLS_CODEPAGE_932=m -CONFIG_NLS_CODEPAGE_949=m -CONFIG_NLS_CODEPAGE_874=m -CONFIG_NLS_ISO8859_8=m -CONFIG_NLS_CODEPAGE_1250=m -CONFIG_NLS_CODEPAGE_1251=m -CONFIG_NLS_ASCII=m -CONFIG_NLS_ISO8859_1=m -CONFIG_NLS_ISO8859_2=m -CONFIG_NLS_ISO8859_3=m -CONFIG_NLS_ISO8859_4=m -CONFIG_NLS_ISO8859_5=m -CONFIG_NLS_ISO8859_6=m -CONFIG_NLS_ISO8859_7=m -CONFIG_NLS_ISO8859_9=m -CONFIG_NLS_ISO8859_13=m -CONFIG_NLS_ISO8859_14=m -CONFIG_NLS_ISO8859_15=m -CONFIG_NLS_KOI8_R=m -CONFIG_NLS_KOI8_U=m -CONFIG_NLS_UTF8=m -CONFIG_DLM=m -# CONFIG_DLM_DEBUG is not set - -# -# Kernel hacking -# -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -# CONFIG_PRINTK_TIME is not set -# CONFIG_ENABLE_WARN_DEPRECATED is not set -# CONFIG_ENABLE_MUST_CHECK is not set -CONFIG_FRAME_WARN=1024 -# CONFIG_MAGIC_SYSRQ is not set -# CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_KERNEL is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set -CONFIG_BKL=y -# CONFIG_SPARSE_RCU_POINTER is not set -# CONFIG_DEBUG_MEMORY_INIT is not set -CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set -CONFIG_USER_STACKTRACE_SUPPORT=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y -CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set -# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_ATOMIC64_SELFTEST is not set -CONFIG_ASYNC_RAID6_TEST=m -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_HAVE_ARCH_KMEMCHECK=y -# CONFIG_STRICT_DEVMEM is not set -# CONFIG_X86_VERBOSE_BOOTUP is not set -# CONFIG_EARLY_PRINTK is not set -# CONFIG_DOUBLEFAULT is not set -# CONFIG_IOMMU_STRESS is not set -CONFIG_HAVE_MMIOTRACE_SUPPORT=y -CONFIG_IO_DELAY_TYPE_0X80=0 -CONFIG_IO_DELAY_TYPE_0XED=1 -CONFIG_IO_DELAY_TYPE_UDELAY=2 -CONFIG_IO_DELAY_TYPE_NONE=3 -CONFIG_IO_DELAY_0X80=y -# CONFIG_IO_DELAY_0XED is not set -# CONFIG_IO_DELAY_UDELAY is not set -# CONFIG_IO_DELAY_NONE is not set -CONFIG_DEFAULT_IO_DELAY_TYPE=0 -CONFIG_OPTIMIZE_INLINING=y - -# -# Security options -# -CONFIG_KEYS=y -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITY is not set -CONFIG_SECURITYFS=y -CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_DEFAULT_SECURITY="" -CONFIG_XOR_BLOCKS=m -CONFIG_ASYNC_CORE=m -CONFIG_ASYNC_MEMCPY=m -CONFIG_ASYNC_XOR=m -CONFIG_ASYNC_PQ=m -CONFIG_ASYNC_RAID6_RECOV=m -CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y -CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -CONFIG_CRYPTO_ALGAPI=m -CONFIG_CRYPTO_ALGAPI2=m -CONFIG_CRYPTO_AEAD=m -CONFIG_CRYPTO_AEAD2=m -CONFIG_CRYPTO_BLKCIPHER=m -CONFIG_CRYPTO_BLKCIPHER2=m -CONFIG_CRYPTO_HASH=m -CONFIG_CRYPTO_HASH2=m -CONFIG_CRYPTO_RNG=m -CONFIG_CRYPTO_RNG2=m -CONFIG_CRYPTO_PCOMP=m -CONFIG_CRYPTO_PCOMP2=m -CONFIG_CRYPTO_MANAGER=m -CONFIG_CRYPTO_MANAGER2=m -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y -CONFIG_CRYPTO_GF128MUL=m -CONFIG_CRYPTO_NULL=m -CONFIG_CRYPTO_WORKQUEUE=m -CONFIG_CRYPTO_CRYPTD=m -CONFIG_CRYPTO_AUTHENC=m -# CONFIG_CRYPTO_TEST is not set - -# -# Authenticated Encryption with Associated Data -# -CONFIG_CRYPTO_CCM=m -CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_SEQIV=m - -# -# Block modes -# -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_CTR=m -CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_LRW=m -CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_XTS=m - -# -# Hash modes -# -CONFIG_CRYPTO_HMAC=m -CONFIG_CRYPTO_XCBC=m -CONFIG_CRYPTO_VMAC=m - -# -# Digest -# -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_CRC32C_INTEL=m -CONFIG_CRYPTO_GHASH=m -CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=m -CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_RMD128=m -CONFIG_CRYPTO_RMD160=m -CONFIG_CRYPTO_RMD256=m -CONFIG_CRYPTO_RMD320=m -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_WP512=m - -# -# Ciphers -# -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_AES_586=m -CONFIG_CRYPTO_ANUBIS=m -CONFIG_CRYPTO_ARC4=m -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_CAMELLIA=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_DES=m -CONFIG_CRYPTO_FCRYPT=m -CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_SALSA20=m -CONFIG_CRYPTO_SALSA20_586=m -CONFIG_CRYPTO_SEED=m -CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_TWOFISH_COMMON=m -CONFIG_CRYPTO_TWOFISH_586=m - -# -# Compression -# -CONFIG_CRYPTO_DEFLATE=m -CONFIG_CRYPTO_ZLIB=m -CONFIG_CRYPTO_LZO=m - -# -# Random Number Generation -# -CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_HW=y -# CONFIG_CRYPTO_DEV_PADLOCK is not set -# CONFIG_CRYPTO_DEV_GEODE is not set -# CONFIG_CRYPTO_DEV_HIFN_795X is not set -CONFIG_HAVE_KVM=y -CONFIG_HAVE_KVM_IRQCHIP=y -CONFIG_HAVE_KVM_EVENTFD=y -CONFIG_KVM_APIC_ARCHITECTURE=y -CONFIG_KVM_MMIO=y -CONFIG_VIRTUALIZATION=y -CONFIG_KVM=m -CONFIG_KVM_INTEL=m -CONFIG_KVM_AMD=m -CONFIG_VHOST_NET=m -CONFIG_LGUEST=m -CONFIG_VIRTIO=m -CONFIG_VIRTIO_RING=m -CONFIG_VIRTIO_PCI=m -CONFIG_VIRTIO_BALLOON=m -# CONFIG_BINARY_PRINTF is not set - -# -# Library routines -# -CONFIG_RAID6_PQ=m -CONFIG_BITREVERSE=y -CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_GENERIC_FIND_NEXT_BIT=y -CONFIG_GENERIC_FIND_LAST_BIT=y -CONFIG_CRC_CCITT=y -CONFIG_CRC16=m -CONFIG_CRC_T10DIF=m -CONFIG_CRC_ITU_T=m -CONFIG_CRC32=y -CONFIG_CRC7=m -CONFIG_LIBCRC32C=m -CONFIG_ZLIB_INFLATE=m -CONFIG_ZLIB_DEFLATE=m -CONFIG_LZO_COMPRESS=m -CONFIG_LZO_DECOMPRESS=m -# CONFIG_XZ_DEC is not set -# CONFIG_XZ_DEC_BCJ is not set -CONFIG_DECOMPRESS_LZMA=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_REED_SOLOMON=m -CONFIG_REED_SOLOMON_DEC16=y -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m -CONFIG_BTREE=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y -CONFIG_CHECK_SIGNATURE=y -CONFIG_NLATTR=y -CONFIG_LRU_CACHE=m diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/linux-diff-2.6.37.u --- a/kernel-modular/stuff/linux-diff-2.6.37.u Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ ---- linux-2.6.30.6/arch/x86/vdso/Makefile -+++ linux-2.6.30.6/arch/x86/vdso/Makefile -@@ -104,10 +104,12 @@ - $(foreach H,$(filter-out FORCE,$^),\ - if grep -q VDSO32_SYSENTER_RETURN $H; \ - then diff -u $(@D)/.tmp_$(@F) $H; \ -- else sed /VDSO32_SYSENTER_RETURN/d $(@D)/.tmp_$(@F) | \ -- diff -u - $H; fi &&) : ;\ -+ else sed /VDSO32_SYSENTER_RETURN/d $(@D)/.tmp_$(@F) > \ -+ $(@D)/.tmp_$(@F).$$ ; \ -+ diff -u $(@D)/.tmp_$(@F).$$ $H; fi &&) : ;\ - then mv -f $(@D)/.tmp_$(@F) $@; \ -- else rm -f $(@D)/.tmp_$(@F); exit 1; \ -+ else rm -f $(@D)/.tmp_$(@F)*; exit 1; \ -+ rm -f $(@D)/.tmp_$(@F)*; \ - fi - endef - - ---- linux-2.6.34/scripts/Makefile.lib -+++ linux-2.6.34/scripts/Makefile.lib -@@ -204,7 +204,8 @@ - # --------------------------------------------------------------------------- - - quiet_cmd_gzip = GZIP $@ --cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -f -9 > $@) || \ -+cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -f -9 > $@) && \ -+ ( which advdef > /dev/null && advdef -z $@ ; true ) || \ - (rm -f $@ ; false) - - -@@ -238,7 +239,7 @@ - - quiet_cmd_lzma = LZMA $@ - cmd_lzma = (cat $(filter-out FORCE,$^) | \ -- lzma -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ -+ lzma e -si -so && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ - (rm -f $@ ; false) - - quiet_cmd_lzo = LZO $@ diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/linux-freeinitrd-2.6.37.u --- a/kernel-modular/stuff/linux-freeinitrd-2.6.37.u Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,129 +0,0 @@ ---- linux-2.6.30.4/arch/x86/mm/init.c -+++ linux-2.6.30.4/arch/x86/mm/init.c -@@ -366,7 +366,7 @@ - */ - set_memory_rw(begin, (end - begin) >> PAGE_SHIFT); - -- printk(KERN_INFO "Freeing %s: %luk freed\n", what, (end - begin) >> 10); -+ if (what) printk(KERN_INFO "Freeing %s: %luk freed\n", what, (end - begin) >> 10); - - for (; addr < end; addr += PAGE_SIZE) { - ClearPageReserved(virt_to_page(addr)); - ---- linux-2.6.30.4/init/initramfs.c -+++ linux-2.6.30.4/init/initramfs.c -@@ -374,6 +374,52 @@ - [Reset] = do_reset, - }; - -+#include -+#define INITRD_PAGE ((PAGE_SIZE > 64*1024) ? PAGE_SIZE : 64*1024) -+#define INITRD_DOT (1024*1024) -+ -+static void free_rootfs_mem(unsigned long start, unsigned long end) -+{ -+ free_init_pages(NULL, start, end); -+} -+ -+static void _free_initrd(unsigned long initrd_start, unsigned long initrd_end, -+ void (*free_initrd_mem)(unsigned long, unsigned long)); -+ -+static struct { -+ int offset, last, inptr, freed; -+ char *max; -+} fill; -+ -+static void release_inbuf(unsigned n) -+{ -+ if (n >= INITRD_PAGE) { -+ unsigned rem = n % INITRD_PAGE; -+ unsigned end = initrd_start + n - rem; -+ _free_initrd(initrd_start, end, free_rootfs_mem); -+ fill.freed += n - rem; -+ if (fill.freed >= INITRD_DOT) { -+ fill.freed -= INITRD_DOT; -+ printk("."); -+ } -+ initrd_start = end; -+ fill.offset = rem; -+ } -+} -+ -+static int fill_buffer(void *buffer, unsigned size) -+{ -+ int max = fill.max - (char *) initrd_start - fill.offset; -+ if (max > size) max = size; -+ if (max > INITRD_PAGE) max = INITRD_PAGE; -+ memcpy(buffer, (void *)(initrd_start + fill.offset), max); -+ release_inbuf(fill.offset); -+ fill.offset += max; -+ fill.inptr += fill.last; -+ fill.last = max; -+ return max; -+} -+ - static int __init write_buffer(char *buf, unsigned len) - { - count = len; -@@ -418,6 +463,7 @@ - decompress_fn decompress; - const char *compress_name; - static __initdata char msg_buf[64]; -+ int early_free_initrd = (buf == (char *) initrd_start); - - header_buf = kmalloc(110, GFP_KERNEL); - symlink_buf = kmalloc(PATH_MAX + N_ALIGN(PATH_MAX) + 1, GFP_KERNEL); -@@ -431,11 +478,16 @@ - message = NULL; - while (!message && len) { - loff_t saved_offset = this_header; -+ fill.offset = buf - (char *) initrd_start; -+ fill.max = buf + len; -+ fill.inptr = fill.last = fill.freed = 0; - if (*buf == '0' && !(this_header & 3)) { - state = Start; - written = write_buffer(buf, len); - buf += written; - len -= written; -+ if (early_free_initrd) -+ release_inbuf(buf - (char *) initrd_start); - continue; - } - if (!*buf) { -@@ -447,7 +497,12 @@ - this_header = 0; - decompress = decompress_method(buf, len, &compress_name); - if (decompress) { -- res = decompress(buf, len, NULL, flush_buffer, NULL, -+ if (early_free_initrd) { -+ res = decompress(NULL, 0, fill_buffer, -+ flush_buffer, NULL, &my_inptr, error); -+ my_inptr += fill.inptr; -+ } -+ else res = decompress(buf, len, NULL, flush_buffer, NULL, - &my_inptr, error); - if (res) - error("decompressor failed"); -@@ -488,7 +546,8 @@ - #include - #include - --static void __init free_initrd(void) -+static void _free_initrd(unsigned long initrd_start, unsigned long initrd_end, -+ void (*free_initrd_mem)(unsigned long, unsigned long)) - { - #ifdef CONFIG_KEXEC - unsigned long crashk_start = (unsigned long)__va(crashk_res.start); -@@ -516,6 +574,12 @@ - #endif - free_initrd_mem(initrd_start, initrd_end); - skip: -+ ; -+} -+ -+static void __init free_initrd(void) -+{ -+ _free_initrd(initrd_start, initrd_end, free_initrd_mem); - initrd_start = 0; - initrd_end = 0; - } diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/linux-header-2.6.37.u --- a/kernel-modular/stuff/linux-header-2.6.37.u Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,469 +0,0 @@ ---- linux-2.6.30.6/arch/x86/boot/header.S -+++ linux-2.6.30.6/arch/x86/boot/header.S -@@ -6,7 +6,7 @@ - * Based on bootsect.S and setup.S - * modified by more people than can be counted - * -- * Rewritten as a common file by H. Peter Anvin (Apr 2007) -+ * Rewritten Pascal Bellard (Nov 2009) - * - * BIG FAT NOTE: We're in real mode using 64k segments. Therefore segment - * addresses must be multiplied by 16 to obtain their respective linear -@@ -27,6 +27,8 @@ - - BOOTSEG = 0x07C0 /* original address of boot-sector */ - SYSSEG = 0x1000 /* historical load address >> 4 */ -+INITSEG = 0x9000 /* boot address >> 4 */ -+SETUPSEG = 0x9020 /* setup address >> 4 */ - - #ifndef SVGA_MODE - #define SVGA_MODE ASK_VGA -@@ -40,53 +42,412 @@ - #define ROOT_RDONLY 1 - #endif - -+/* some extra features */ -+#define EDIT_CMDLINE on hotkey -+#define SHOW_REGS show int13 status & parameters -+ - .code16 - .section ".bstext", "ax" - - .global bootsect_start - bootsect_start: -+ cld # assume nothing -+stacktop = 0x9E00 # in 0x8000 .. 0xA000 -+zeroed = 48+10 # gdt + zeroed registers -+ movw $stacktop-12-zeroed, %di # stacktop is an arbitrary value >= -+ # length of bootsect + length of -+ # setup + room for stack; -+ # 12 is disk parm size. -+ pushw $INITSEG -+ popw %es # %es = INITSEG -+ -+ pushw %es -+ popw %ss # %ss and %es already contain INITSEG -+ movw %di, %sp # put stack at INITSEG:stacktop-... -+ -+# Many BIOS's default disk parameter tables will not recognize -+# multi-sector reads beyond the maximum sector number specified -+# in the default diskette parameter tables - this may mean 7 -+# sectors in some cases. -+# -+# Since single sector reads are slow and out of the question, -+# we must take care of this by creating new parameter tables -+# (for the first disk) in RAM. We can set the maximum sector -+# count to 36 - the most we will encounter on an ED 2.88. -+# -+# High doesn't hurt. Low does. Let's use the max: 63 -+# -+# Segments are as follows: %es = %ss = INITSEG, -+ -+ xorw %ax, %ax # %ax = 0 -+ movw $zeroed/2, %cx # clear gdt + offset, %ds, limits -+ rep # don't worry about cld -+ stosw # already done above -+ popw %bx # offset = 0 -+ popw %ds # %ds = 0 -+ popw %gs # %gs = 0 -+ -+ movb setup_sects+0x7C00, %al # read bootsector + setup (%ds = 0) -+ incw %ax -+ -+ pushw %es -+ pushw %di # %ds:%bx+0x78 is parameter table address -+ ldsw 0x78(%bx), %si # %ds:%si is source -+ movb $6, %cl # copy 12 bytes -+ rep # don't worry about cld -+ movsw # already done above -+ popl %gs:0x78(%bx) # update parameter table address -+ pushw %es -+ popw %ds # now %ds = %es = %ss = INITSEG -+ movb $63, 0x4-12(%di) # patch sector count, %di = stacktop -+ cli -+ -+ xchg %ax, %di # sector count -+ popw %ax # limits = 0 -+ incw %cx # cylinder 0, sector 1 -+ call read_first_sectors # read setup -+ -+offset_version = 0xE -+ movw $0x200,%si -+ addw offset_version(%si),%si # starting protocol 2.00, Kernel 1.3.73 -+ call putstr # show which kernel we are loading -+ -+# The cmdline can be entered and modifed at boot time. -+# Only characters before the cursor are passed to the kernel. -+ popw %bx # clear %bx -+ orw cmd_line_ptr, %bx -+ jz nocmdline -+ pushw %bx -+ incw %di -+ call read_sectors -+ popw %si -+ call putstr -+#ifdef EDIT_CMDLINE -+cmdlp: -+ movb $0x20, %al # clear end of line -+ int $0x10 # with Space -+ movb $8, %al # and BackSpace -+ int $0x10 -+ decw %si -+cmdget: -+ call wait4key -+ cmpb $8, %al # BackSpace ? -+ je cmdbs -+ movb %al, (%si) # store char -+ lodsw # %si += 2 -+cmdbs: -+#if 1 -+ cmpw %si,cmd_line_ptr -+ je cmdget -+#endif -+ call putc # set %ah and %bx -+ cmpb $10, %al # Enter ? -+ jne cmdlp -+ movb %bh,-2(%si) # set end of string and remove CR -+endcmdline: -+#endif -+nocmdline: - -- # Normalize the start address -- ljmp $BOOTSEG, $start2 -- --start2: -- movw %cs, %ax -- movw %ax, %ds -- movw %ax, %es -- movw %ax, %ss -- xorw %sp, %sp -- sti -- cld -- -- movw $bugger_off_msg, %si -+# This routine loads the system at address SYSSEG, making sure -+# no 64kB boundaries are crossed. We try to load it as fast as -+# possible, loading whole tracks whenever we can. -+ -+ramdisk_image = 0x0218 -+ramdisk_size = 0x021C -+ movw %sp, %si # for bootsect_gdt -+ decw 16(%si) # bootsect_src = 64Kb -+ decw 24(%si) # bootsect_dst = 64Kb -+ movw $syssize, %di -+type_of_loader = 0x210 -+loadflags = 0x211 -+heap_end_ptr = 0x224 -+ksyssize = 500 -+ orw $0x80FF, type_of_loader-ksyssize(%di) # loader type = 0xFF -+ movw $stacktop-0x200, heap_end_ptr-ksyssize(%di) -+ movb $0x10, %al # destination = 0x100000 -+ movb $5, %cl -+initrdlp: -+ decw %ax -+ movb $0x93,%ah -+ movw %ax, 28(%si) # bootsect_dst_base+2 -+ movb $(SYSSEG/4096), %al # source = SYSSEG -+ movw %ax, 20(%si) # bootsect_src_base+2 -+ cbw -+ cwde -+ shlw %cl, %ax -+ decw %ax -+ addl (%di),%eax -+ shrl %cl, %eax -+syslp: -+ pushw $SYSSEG -+ popw %es -+ movw $128,%di # 64Kb -+ subw %di, %ax # max 32M > int 15 limit -+ pushf -+ jnc not_last -+ addw %ax, %di -+not_last: -+ xorw %bx, %bx # clear %bx -+ pushw %ax -+#if defined(SHOW_REGS) -+ pushw %si -+ call read_sectors -+ popw %si -+#else -+ call read_sectors -+#endif -+ movw $0x8000, %cx # full 64K -+ movb $0x87, %ah -+ incb 28(%si) # bootsect_dst_base+2 -+ int $0x15 # max 16M -+ popw %ax -+ popf -+ ja syslp -+ movw ramdisk_image+2,%ax -+ movw $ramdisk_size,%di -+ movb $9, %cl -+ cmpb %al,28(%si) -+ jb initrdlp -+ -+# This procedure turns off the floppy drive motor, so -+# that we enter the kernel in a known state, and -+# don't have to worry about it later. -+ -+#if 1 -+kill_motor: -+ xchgw %ax, %bx # reset FDC -+ int $0x13 -+#else -+kill_motor: -+ movw $0x3f2, %dx -+ xchgw %ax, %bx -+ outb %al, %dx -+#endif - --msg_loop: -- lodsb -- andb %al, %al -- jz bs_die -- movb $0xe, %ah -- movw $7, %bx -+# After that (everything loaded), we jump to the setup-routine -+# loaded directly after the bootblock: -+# Segments are as follows: %ds = %ss = INITSEG -+ -+ ljmp $SETUPSEG, $0 -+ -+# read_sectors reads %di sectors into %es:0 buffer. -+# %es:0 is updated to the next memory location. -+# First, sectors are read sector by sector until -+# sector per track count is known. Then they are -+# read track by track. -+# Assume no error on first track. -+ -+#define FLOPPY_CYLINDERS 80 /* 80 cylinders minimum */ -+#define FLOPPY_HEADS 2 /* 2 heads minimum */ -+#define FLOPPY_SECTORS 18 /* 18 sectors minimum */ -+ -+#ifdef SHOW_REGS -+print_loop: -+ movb $0x6 + 'A' - 1, %al -+ subb %cl, %al -+ movw $regs, %si # caller %si is saved -+ call putcs # putc(%al) + putstr(%si) -+# it will print out all of the registers. -+ popw %bp # load word into %si -+ jmp print_all # print %bp (status) -+#endif -+check_limits: -+#ifndef SHOW_REGS -+ popw %dx -+#endif -+ cmpb $FLOPPY_SECTORS+1, %cl # 18 sectors minimum -+ jb check_head -+ cmpb %al, %cl # max sector known ? -+ ja next_head # no -> store it -+check_head: -+ cmpb $FLOPPY_HEADS, %dh # 2 heads minimum -+ jb check_cylinder -+ cmpb %ah, %dh # max head known ? -+ ja next_cylinder # no -> store it -+check_cylinder: -+ pushaw -+#ifdef SHOW_REGS -+ cmpw $0x600,%bp # disk changed ? -+ je reset_floppy -+ pushw %es # print %es (named EX) -+ pushw %dx # print %dx -+ pushw %cx # print %cx -+ pushw %bx # print %bx -+ xchgw %ax, %si -+ movb $2,%ah -+ pushw %ax # print %ax -+ movb $6,%cl -+print_all: -+ movb $4, %ch # 4 hex digits -+print_digit: -+ rolw $4, %bp # rotate to use low 4 bits -+ movb $0x0f, %al -+ andw %bp, %ax # %al = mask for nybble -+ addb $0x90, %al # convert %al to ascii hex -+ daa # in only four instructions! -+ adcb $0x40, %al -+ daa -+ call putc # set %ah and %bx -+ decb %ch -+ jnz print_digit -+ movb $0x20, %al # SPACE - int $0x10 -- jmp msg_loop -- --bs_die: -- # Allow the user to press a key, then reboot -- xorw %ax, %ax -+ loop print_loop -+ call wait -+ cbw # %ah = 0 -+reset_floppy: -+#else -+ cbw # %ah = 0 -+#endif -+ int $0x13 # reset controler -+ popaw -+read_sectorslp: -+ pushw %dx # some bios break dx... -+ pushw %ax # limits -+ subb %cl, %al # sectors remaining in track -+ ja tolastsect -+ movb $1, %al # 1 sector mini -+tolastsect: -+ cbw -+ cmpw %di, %ax -+ jb more1trk -+ movw %di, %ax # sectors to read -+more1trk: -+ pushw %ax # save context -+ movb $2, %ah # cmd: read chs -+ int $0x13 -+#ifdef SHOW_REGS -+ xchgw %ax, %bp # status -+#endif -+# ifdef SHOW_REGS -+ popw %si # save %ax -+ popw %ax # limits -+ popw %dx -+# else -+ popw %dx # save %ax -+ popw %ax # limits -+# endif -+ jc check_limits -+ xchgw %ax, %bp -+# ifdef SHOW_REGS -+update_regs: -+ incw %cx # next sector -+ movw %cx, %fs -+ addb $2,%bh # next location -+ decw %di # update sector counter -+ jz putcdot -+ decw %si -+ jnz update_regs -+# else -+ addw %dx,%cx # next sector -+ addb %dl,%bh -+ addb %dl,%bh # next location -+ subw %dx,%di # update sector counter -+ popw %dx -+ jz putcdot -+# endif -+read_sectors: -+ movw %fs, %cx -+ xchgw %ax, %bp -+ cmpb %al,%cl # reach sector limit ? -+ jne bdendlp -+next_head: -+ movb %cl,%al -+ incb %dh # next head -+ movb $1,%cl # first sector -+ cmpb %ah, %dh # reach head limit ? -+ jne bdendlp -+next_cylinder: -+ movb %dh,%ah -+# NOTE : support 256 cylinders max -+ incb %ch # next cylinder -+read_first_sectors: -+ movb $0,%dh # first head -+cylinder_count = 496 -+ cmpb $FLOPPY_CYLINDERS,%ch # reach cylinder limit ? -+ jb bdendlp -+ cmpb cylinder_count, %ch -+ jb bdendlp -+next_floppy: -+ movb $0,%ch # first cylinder -+ pushaw -+ movw $swap_floppy,%si -+ incb 12(%si) -+ pushw %bx -+ call putstr -+ popw %bx -+waitfloppy: -+ call wait -+ jne waitfloppydone -+ pushw %dx # some bios break dx... -+ cbw -+ int $0x13 # reset FDC -+ movw $0x201,%ax -+# cwd -+# movw $1,%cx -+ int $0x13 # read first sector -+ popw %dx -+ rclb $1,%ah # floppy changed 06=>0D no error 00 -+ cmpb -2(%si), %ah # 0D then 00 -+ jne waitfloppy # no => try again -+ incw %si -+ orb %ah,%ah # was 00 ? -+ jne waitfloppy -+waitfloppydone: -+ popaw -+bdendlp: -+ jmp read_sectorslp -+ -+putcdot: -+ pushw %ss -+ popw %es # restore es -+ movb $0x2e+3, %al # loading... message 2e = . -+putclf: -+ subb $3, %al -+putc: -+ movb $0xe, %ah -+ movw $7, %bx # one dot each 64k -+ int $0x10 -+ cmp $0xd, %al # CR ? -+ je putclf -+ ret -+ -+putstr: -+ movb $0xd, %al # CR -+putcs: -+ call putc -+ lodsb -+ orb %al,%al # end of string is \0 -+ jnz putcs -+ ret -+ -+clock = 0x46C -+wait: -+wait4key: -+ movw $clock, %di -+#define DELAY 5 -+ movb $(DELAY*182)/10,%cl -+ addb %gs:(%di),%cl -+waitkbd: -+ movw $0x10D, %ax # test keyboard, timeout => CR -+ cmpb %gs:(%di),%cl -+ je waitdone - int $0x16 -- int $0x19 -+ jz waitkbd -+ cbw -+ int $0x16 # eat char -+ movw %di, %gs # disable timeout -+ incw %di # clear Z -+waitdone: -+ ret - -- # int 0x19 should never return. In case it does anyway, -- # invoke the BIOS reset code... -- ljmp $0xf000,$0xfff0 -- -- .section ".bsdata", "a" --bugger_off_msg: -- .ascii "Direct booting from floppy is no longer supported.\r\n" -- .ascii "Please use a boot loader program instead.\r\n" -- .ascii "\n" -- .ascii "Remove disk and press any key to reboot . . .\r\n" -- .byte 0 -+#ifdef SHOW_REGS -+regs: .asciz "X:" -+#endif - -+swap_floppy: .ascii "Insert disk 1" -+ .ascii "." -+ .byte 7,13,0 - - # Kernel attributes; used by setup. This is part 1 of the - # header, from the old boot sector. diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/linux-squashfs-lzma-2.6.34.u --- a/kernel-modular/stuff/linux-squashfs-lzma-2.6.34.u Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,649 +0,0 @@ ---- linux-2.6.30.6/include/linux/decompress/bunzip2_mm.h -+++ linux-2.6.30.6/include/linux/decompress/bunzip2_mm.h -@@ -0,0 +1,13 @@ -+#ifndef BUNZIP2_MM_H -+#define BUNZIP2_MM_H -+ -+#ifdef STATIC -+/* Code active when included from pre-boot environment: */ -+#define INIT -+#else -+/* Compile for initramfs/initrd code only */ -+#define INIT __init -+static void(*error)(char *m); -+#endif -+ -+#endif - ---- linux-2.6.30.6/include/linux/decompress/inflate_mm.h -+++ linux-2.6.30.6/include/linux/decompress/inflate_mm.h -@@ -0,0 +1,13 @@ -+#ifndef INFLATE_MM_H -+#define INFLATE_MM_H -+ -+#ifdef STATIC -+/* Code active when included from pre-boot environment: */ -+#define INIT -+#else -+/* Compile for initramfs/initrd code only */ -+#define INIT __init -+static void(*error)(char *m); -+#endif -+ -+#endif - -#--- linux-2.6.30.6/include/linux/decompress/mm.h -#+++ linux-2.6.30.6/include/linux/decompress/mm.h -@@ -63,8 +63,6 @@ - - #define set_error_fn(x) - --#define INIT -- - #else /* STATIC */ - - /* Code active when compiled standalone for use when loading ramdisk: */ -@@ -84,10 +82,8 @@ - #define large_malloc(a) vmalloc(a) - #define large_free(a) vfree(a) - --static void(*error)(char *m); - #define set_error_fn(x) error = x; - --#define INIT __init - #define STATIC - - #include - ---- linux-2.6.30.6/include/linux/decompress/unlzma_mm.h -+++ linux-2.6.30.6/include/linux/decompress/unlzma_mm.h -@@ -0,0 +1,20 @@ -+#ifndef UNLZMA_MM_H -+#define UNLZMA_MM_H -+ -+#ifdef STATIC -+ -+/* Code active when included from pre-boot environment: */ -+#define INIT -+ -+#elif defined(CONFIG_DECOMPRESS_LZMA_NEEDED) -+ -+/* Make it available to non initramfs/initrd code */ -+#define INIT -+#include -+#else -+ -+/* Compile for initramfs/initrd code only */ -+#define INIT __init -+#endif -+ -+#endif - ---- linux-2.6.30.6/lib/Kconfig -+++ linux-2.6.30.6/lib/Kconfig -@@ -117,6 +117,9 @@ - config DECOMPRESS_LZMA - tristate - -+config DECOMPRESS_LZMA_NEEDED -+ boolean -+ - config DECOMPRESS_LZO - select LZO_DECOMPRESS - tristate - ---- linux-2.6.30.6/lib/decompress_bunzip2.c -+++ linux-2.6.30.6/lib/decompress_bunzip2.c -@@ -52,6 +52,7 @@ - #include - #endif /* STATIC */ - -+#include - #include - - #ifndef INT_MAX - ---- linux-2.6.30.6/lib/decompress_inflate.c -+++ linux-2.6.30.6/lib/decompress_inflate.c -@@ -23,6 +23,7 @@ - - #endif /* STATIC */ - -+#include - #include - - #define GZIP_IOBUF_SIZE (16*1024) - ---- linux-2.6.30.6/lib/decompress_unlzma.c -+++ linux-2.6.30.6/lib/decompress_unlzma.c -@@ -36,6 +36,7 @@ - #include - #endif /* STATIC */ - -+#include - #include - - #define MIN(a, b) (((a) < (b)) ? (a) : (b)) -@@ -88,7 +89,7 @@ - } - - /* Called twice: once at startup and once in rc_normalize() */ --static void INIT rc_read(struct rc *rc) -+static void INIT rc_read(struct rc *rc, void(*error)(char *x)) - { - rc->buffer_size = rc->fill((char *)rc->buffer, LZMA_IOBUF_SIZE); - if (rc->buffer_size <= 0) -@@ -115,13 +116,13 @@ - rc->range = 0xFFFFFFFF; - } - --static inline void INIT rc_init_code(struct rc *rc) -+static inline void INIT rc_init_code(struct rc *rc, void(*error)(char *x)) - { - int i; - - for (i = 0; i < 5; i++) { - if (rc->ptr >= rc->buffer_end) -- rc_read(rc); -+ rc_read(rc, error); - rc->code = (rc->code << 8) | *rc->ptr++; - } - } -@@ -134,32 +135,33 @@ - } - - /* Called twice, but one callsite is in inline'd rc_is_bit_0_helper() */ --static void INIT rc_do_normalize(struct rc *rc) -+static void INIT rc_do_normalize(struct rc *rc, void(*error)(char *x)) - { - if (rc->ptr >= rc->buffer_end) -- rc_read(rc); -+ rc_read(rc, error); - rc->range <<= 8; - rc->code = (rc->code << 8) | *rc->ptr++; - } --static inline void INIT rc_normalize(struct rc *rc) -+static inline void INIT rc_normalize(struct rc *rc, void(*error)(char *x)) - { - if (rc->range < (1 << RC_TOP_BITS)) -- rc_do_normalize(rc); -+ rc_do_normalize(rc, error); - } - - /* Called 9 times */ - /* Why rc_is_bit_0_helper exists? - *Because we want to always expose (rc->code < rc->bound) to optimizer - */ --static inline uint32_t INIT rc_is_bit_0_helper(struct rc *rc, uint16_t *p) -+static inline uint32_t INIT rc_is_bit_0_helper(struct rc *rc, uint16_t *p, -+ void (*error)(char *x)) - { -- rc_normalize(rc); -+ rc_normalize(rc, error); - rc->bound = *p * (rc->range >> RC_MODEL_TOTAL_BITS); - return rc->bound; - } --static inline int INIT rc_is_bit_0(struct rc *rc, uint16_t *p) -+static inline int INIT rc_is_bit_0(struct rc *rc, uint16_t *p, void(*error)(char *x)) - { -- uint32_t t = rc_is_bit_0_helper(rc, p); -+ uint32_t t = rc_is_bit_0_helper(rc, p, error); - return rc->code < t; - } - -@@ -177,9 +179,9 @@ - } - - /* Called 4 times in unlzma loop */ --static int INIT rc_get_bit(struct rc *rc, uint16_t *p, int *symbol) -+static int INIT rc_get_bit(struct rc *rc, uint16_t *p, int *symbol, void(*error)(char *x)) - { -- if (rc_is_bit_0(rc, p)) { -+ if (rc_is_bit_0(rc, p, error)) { - rc_update_bit_0(rc, p); - *symbol *= 2; - return 0; -@@ -191,9 +193,9 @@ - } - - /* Called once */ --static inline int INIT rc_direct_bit(struct rc *rc) -+static inline int INIT rc_direct_bit(struct rc *rc , void(*error)(char *x)) - { -- rc_normalize(rc); -+ rc_normalize(rc, error); - rc->range >>= 1; - if (rc->code >= rc->range) { - rc->code -= rc->range; -@@ -204,13 +206,14 @@ - - /* Called twice */ - static inline void INIT --rc_bit_tree_decode(struct rc *rc, uint16_t *p, int num_levels, int *symbol) -+rc_bit_tree_decode(struct rc *rc, uint16_t *p, int num_levels, int *symbol, -+ void(*error)(char *x)) - { - int i = num_levels; - - *symbol = 1; - while (i--) -- rc_get_bit(rc, p + *symbol, symbol); -+ rc_get_bit(rc, p + *symbol, symbol, error); - *symbol -= 1 << num_levels; - } - -@@ -406,7 +409,8 @@ - static inline void INIT process_bit0(struct writer *wr, struct rc *rc, - struct cstate *cst, uint16_t *p, - int pos_state, uint16_t *prob, -- int lc, uint32_t literal_pos_mask) { -+ int lc, uint32_t literal_pos_mask, -+ void(*error)(char *x)) { - int mi = 1; - static const int state[LZMA_NUM_STATES] = - { 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 4, 5 }; -@@ -427,7 +431,7 @@ - match_byte <<= 1; - bit = match_byte & 0x100; - prob_lit = prob + 0x100 + bit + mi; -- if (rc_get_bit(rc, prob_lit, &mi)) { -+ if (rc_get_bit(rc, prob_lit, &mi, error)) { - if (!bit) - break; - } else { -@@ -438,7 +442,7 @@ - } - while (mi < 0x100) { - uint16_t *prob_lit = prob + mi; -- rc_get_bit(rc, prob_lit, &mi); -+ rc_get_bit(rc, prob_lit, &mi, error); - } - write_byte(wr, mi); - cst->state = state[cst->state]; -@@ -446,7 +453,8 @@ - - static inline void INIT process_bit1(struct writer *wr, struct rc *rc, - struct cstate *cst, uint16_t *p, -- int pos_state, uint16_t *prob) { -+ int pos_state, uint16_t *prob, -+ void(*error)(char *x)) { - int offset; - uint16_t *prob_len; - int num_bits; -@@ -454,7 +459,7 @@ - - rc_update_bit_1(rc, prob); - prob = p + LZMA_IS_REP + cst->state; -- if (rc_is_bit_0(rc, prob)) { -+ if (rc_is_bit_0(rc, prob, error)) { - rc_update_bit_0(rc, prob); - cst->rep3 = cst->rep2; - cst->rep2 = cst->rep1; -@@ -464,13 +469,13 @@ - } else { - rc_update_bit_1(rc, prob); - prob += LZMA_IS_REP_G0 - LZMA_IS_REP; -- if (rc_is_bit_0(rc, prob)) { -+ if (rc_is_bit_0(rc, prob, error)) { - rc_update_bit_0(rc, prob); - prob = (p + LZMA_IS_REP_0_LONG - + (cst->state << - LZMA_NUM_POS_BITS_MAX) + - pos_state); -- if (rc_is_bit_0(rc, prob)) { -+ if (rc_is_bit_0(rc, prob, error)) { - rc_update_bit_0(rc, prob); - - cst->state = cst->state < LZMA_NUM_LIT_STATES ? -@@ -485,13 +490,13 @@ - - rc_update_bit_1(rc, prob); - prob += LZMA_IS_REP_G1 - LZMA_IS_REP_G0; -- if (rc_is_bit_0(rc, prob)) { -+ if (rc_is_bit_0(rc, prob, error)) { - rc_update_bit_0(rc, prob); - distance = cst->rep1; - } else { - rc_update_bit_1(rc, prob); - prob += LZMA_IS_REP_G2 - LZMA_IS_REP_G1; -- if (rc_is_bit_0(rc, prob)) { -+ if (rc_is_bit_0(rc, prob, error)) { - rc_update_bit_0(rc, prob); - distance = cst->rep2; - } else { -@@ -509,7 +514,7 @@ - } - - prob_len = prob + LZMA_LEN_CHOICE; -- if (rc_is_bit_0(rc, prob_len)) { -+ if (rc_is_bit_0(rc, prob_len, error)) { - rc_update_bit_0(rc, prob_len); - prob_len += LZMA_LEN_LOW - LZMA_LEN_CHOICE - + (pos_state << -@@ -519,7 +524,7 @@ - } else { - rc_update_bit_1(rc, prob_len); - prob_len += LZMA_LEN_CHOICE_2 - LZMA_LEN_CHOICE; -- if (rc_is_bit_0(rc, prob_len)) { -+ if (rc_is_bit_0(rc, prob_len, error)) { - rc_update_bit_0(rc, prob_len); - prob_len += LZMA_LEN_MID - LZMA_LEN_CHOICE_2 - + (pos_state << -@@ -535,7 +540,7 @@ - } - } - -- rc_bit_tree_decode(rc, prob_len, num_bits, &len); -+ rc_bit_tree_decode(rc, prob_len, num_bits, &len, error); - len += offset; - - if (cst->state < 4) { -@@ -550,7 +555,7 @@ - << LZMA_NUM_POS_SLOT_BITS); - rc_bit_tree_decode(rc, prob, - LZMA_NUM_POS_SLOT_BITS, -- &pos_slot); -+ &pos_slot, error); - if (pos_slot >= LZMA_START_POS_MODEL_INDEX) { - int i, mi; - num_bits = (pos_slot >> 1) - 1; -@@ -563,7 +568,7 @@ - num_bits -= LZMA_NUM_ALIGN_BITS; - while (num_bits--) - cst->rep0 = (cst->rep0 << 1) | -- rc_direct_bit(rc); -+ rc_direct_bit(rc, error); - prob = p + LZMA_ALIGN; - cst->rep0 <<= LZMA_NUM_ALIGN_BITS; - num_bits = LZMA_NUM_ALIGN_BITS; -@@ -571,7 +576,7 @@ - i = 1; - mi = 1; - while (num_bits--) { -- if (rc_get_bit(rc, prob + mi, &mi)) -+ if (rc_get_bit(rc, prob + mi, &mi, error)) - cst->rep0 |= i; - i <<= 1; - } -@@ -588,12 +593,12 @@ - - - --STATIC inline int INIT unlzma(unsigned char *buf, int in_len, -+STATIC int INIT unlzma(unsigned char *buf, int in_len, - int(*fill)(void*, unsigned int), - int(*flush)(void*, unsigned int), - unsigned char *output, - int *posp, -- void(*error_fn)(char *x) -+ void(*error)(char *x) - ) - { - extern int cpio_flush_buffer(void*, unsigned int); -@@ -610,7 +615,6 @@ - unsigned char *inbuf; - int ret = -1; - -- set_error_fn(error_fn); - - if (buf) - inbuf = buf; -@@ -638,7 +642,7 @@ - - for (i = 0; i < sizeof(header); i++) { - if (rc.ptr >= rc.buffer_end) -- rc_read(&rc); -+ rc_read(&rc, error); - ((unsigned char *)&header)[i] = *rc.ptr++; - } - -@@ -683,17 +687,17 @@ - for (i = 0; i < num_probs; i++) - p[i] = (1 << RC_MODEL_TOTAL_BITS) >> 1; - wr.max_index = wr.next_index = 0; -- rc_init_code(&rc); -+ rc_init_code(&rc, error); - - while (get_pos(&wr) < header.dst_size) { - int pos_state = get_pos(&wr) & pos_state_mask; - uint16_t *prob = p + LZMA_IS_MATCH + - (cst.state << LZMA_NUM_POS_BITS_MAX) + pos_state; -- if (rc_is_bit_0(&rc, prob)) -+ if (rc_is_bit_0(&rc, prob, error)) - process_bit0(&wr, &rc, &cst, p, pos_state, prob, -- lc, literal_pos_mask); -+ lc, literal_pos_mask, error); - else { -- process_bit1(&wr, &rc, &cst, p, pos_state, prob); -+ process_bit1(&wr, &rc, &cst, p, pos_state, prob, error); - if (cst.rep0 == 0) - break; - } -@@ -727,6 +731,9 @@ - exit_0: - return ret; - } -+#if defined(CONFIG_DECOMPRESS_LZMA_NEEDED) && !defined(PREBOOT) -+EXPORT_SYMBOL(unlzma); -+#endif - - #ifdef PREBOOT - STATIC int INIT decompress(unsigned char *buf, int in_len, - ---- linux-2.6.34/fs/squashfs/Kconfig -+++ linux-2.6.34/fs/squashfs/Kconfig -@@ -26,6 +26,12 @@ - - If unsure, say N. - -+config SQUASHFS_LZMA -+ bool "Include support for LZMA compressed file systems" -+ depends on SQUASHFS -+ select DECOMPRESS_LZMA -+ select DECOMPRESS_LZMA_NEEDED -+ - config SQUASHFS_EMBEDDED - - bool "Additional option for memory-constrained systems" - ---- linux-2.6.34/fs/squashfs/Makefile -+++ linux-2.6.34/fs/squashfs/Makefile -@@ -5,3 +5,4 @@ - obj-$(CONFIG_SQUASHFS) += squashfs.o - squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o - squashfs-y += namei.o super.o symlink.o zlib_wrapper.o decompressor.o -+squashfs-$(CONFIG_SQUASHFS_LZMA) += lzma_wrapper.o - ---- linux-2.6.34/fs/squashfs/decompressor.c -+++ linux-2.6.34/fs/squashfs/decompressor.c -@@ -50,7 +50,11 @@ - - static const struct squashfs_decompressor *decompressor[] = { - &squashfs_zlib_comp_ops, -+#ifdef CONFIG_SQUASHFS_LZMA -+ &squashfs_lzma_comp_ops, -+#else - &squashfs_lzma_unsupported_comp_ops, -+#endif - &squashfs_lzo_unsupported_comp_ops, - &squashfs_unknown_comp_ops - }; - ---- linux-2.6.34/fs/squashfs/lzma_wrapper.c -+++ linux-2.6.34/fs/squashfs/lzma_wrapper.c -@@ -0,0 +1,152 @@ -+/* -+ * Squashfs - a compressed read only filesystem for Linux -+ * -+ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -+ * Phillip Lougher -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+ * -+ * lzma_wrapper.c -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "squashfs_fs.h" -+#include "squashfs_fs_sb.h" -+#include "squashfs_fs_i.h" -+#include "squashfs.h" -+#include "decompressor.h" -+ -+struct squashfs_lzma { -+ void *input; -+ void *output; -+}; -+ -+/* decompress_unlzma.c is currently non re-entrant... */ -+DEFINE_MUTEX(lzma_mutex); -+ -+/* decompress_unlzma.c doesn't provide any context in its callbacks... */ -+static int lzma_error; -+ -+static void error(char *m) -+{ -+ ERROR("unlzma error: %s\n", m); -+ lzma_error = 1; -+} -+ -+ -+static void *lzma_init(struct squashfs_sb_info *msblk) -+{ -+ struct squashfs_lzma *stream = kzalloc(sizeof(*stream), GFP_KERNEL); -+ if (stream == NULL) -+ goto failed; -+ stream->input = vmalloc(msblk->block_size); -+ if (stream->input == NULL) -+ goto failed; -+ stream->output = vmalloc(msblk->block_size); -+ if (stream->output == NULL) -+ goto failed2; -+ -+ return stream; -+ -+failed2: -+ vfree(stream->input); -+failed: -+ ERROR("failed to allocate lzma workspace\n"); -+ kfree(stream); -+ return NULL; -+} -+ -+ -+static void lzma_free(void *strm) -+{ -+ struct squashfs_lzma *stream = strm; -+ -+ if (stream) { -+ vfree(stream->input); -+ vfree(stream->output); -+ } -+ kfree(stream); -+} -+ -+ -+static int lzma_uncompress(struct squashfs_sb_info *msblk, void **buffer, -+ struct buffer_head **bh, int b, int offset, int length, int srclength, -+ int pages) -+{ -+ struct squashfs_lzma *stream = msblk->stream; -+ void *buff = stream->input; -+ int avail, i, bytes = length, res; -+ -+ mutex_lock(&lzma_mutex); -+ -+ for (i = 0; i < b; i++) { -+ wait_on_buffer(bh[i]); -+ if (!buffer_uptodate(bh[i])) -+ goto block_release; -+ -+ avail = min(bytes, msblk->devblksize - offset); -+ memcpy(buff, bh[i]->b_data + offset, avail); -+ buff += avail; -+ bytes -= avail; -+ offset = 0; -+ put_bh(bh[i]); -+ } -+ -+ lzma_error = 0; -+ res = unlzma(stream->input, length, NULL, NULL, stream->output, NULL, -+ error); -+ if (res || lzma_error) -+ goto failed; -+ -+ /* uncompressed size is stored in the LZMA header (5 byte offset) */ -+ res = bytes = get_unaligned_le32(stream->input + 5); -+ for (i = 0, buff = stream->output; bytes && i < pages; i++) { -+ avail = min_t(int, bytes, PAGE_CACHE_SIZE); -+ memcpy(buffer[i], buff, avail); -+ buff += avail; -+ bytes -= avail; -+ } -+ if (bytes) -+ goto failed; -+ -+ mutex_unlock(&lzma_mutex); -+ return res; -+ -+block_release: -+ for (; i < b; i++) -+ put_bh(bh[i]); -+ -+failed: -+ mutex_unlock(&lzma_mutex); -+ -+ ERROR("lzma decompression failed, data probably corrupt\n"); -+ return -EIO; -+} -+ -+const struct squashfs_decompressor squashfs_lzma_comp_ops = { -+ .init = lzma_init, -+ .free = lzma_free, -+ .decompress = lzma_uncompress, -+ .id = LZMA_COMPRESSION, -+ .name = "lzma", -+ .supported = 1 -+}; -+ - ---- linux-2.6.34/fs/squashfs/squashfs.h -+++ linux-2.6.34/fs/squashfs/squashfs.h -@@ -94,3 +94,6 @@ - - /* zlib_wrapper.c */ - extern const struct squashfs_decompressor squashfs_zlib_comp_ops; -+ -+/* lzma wrapper.c */ -+extern const struct squashfs_decompressor squashfs_lzma_comp_ops; - ---- linux-2.6.34/lib/Makefile -+++ linux-2.6.34/lib/Makefile -@@ -69,7 +69,7 @@ obj-$(CONFIG_LZO_DECOMPRESS) += lzo/ - - lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o - lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o --lib-$(CONFIG_DECOMPRESS_LZMA) += decompress_unlzma.o -+obj-$(CONFIG_DECOMPRESS_LZMA) += decompress_unlzma.o - lib-$(CONFIG_DECOMPRESS_LZO) += decompress_unlzo.o - - obj-$(CONFIG_TEXTSEARCH) += textsearch.o - diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/linux-unlzma-2.6.37.u --- a/kernel-modular/stuff/linux-unlzma-2.6.37.u Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,268 +0,0 @@ ---- linux-2.6.30.4/init/initramfs.c -+++ linux-2.6.30.4/init/initramfs.c -@@ -425,7 +425,8 @@ - return len - count; - } - --static int __init flush_buffer(void *bufv, unsigned len) -+#define flush_buffer cpio_flush_buffer -+int __init flush_buffer(void *bufv, unsigned len) - { - char *buf = (char *) bufv; - int written; - ---- linux-2.6.30.4/lib/decompress_unlzma.c -+++ linux-2.6.30.4/lib/decompress_unlzma.c -@@ -278,6 +278,10 @@ - size_t global_pos; - int(*flush)(void*, unsigned int); - struct lzma_header *header; -+ int is_cpio_flush; -+ uint8_t **buffer_index; -+ int next_index; -+ int max_index; - }; - - struct cstate { -@@ -294,6 +298,14 @@ - static inline uint8_t INIT peek_old_byte(struct writer *wr, - uint32_t offs) - { -+ if (wr->is_cpio_flush) { -+ int32_t pos; -+ while (offs > wr->header->dict_size) -+ offs -= wr->header->dict_size; -+ pos = wr->buffer_pos - offs; -+ return wr->buffer_index[pos / LZMA_IOBUF_SIZE] -+ [pos % LZMA_IOBUF_SIZE]; -+ } - if (!wr->flush) { - int32_t pos; - while (offs > wr->header->dict_size) -@@ -309,8 +321,41 @@ - - } - -+static inline void INIT write_byte_if_cpio(struct writer *wr, uint8_t byte) -+{ -+ if (wr->buffer_pos % LZMA_IOBUF_SIZE == 0) { -+ // if the following large_malloc fails, the initramfs -+ // whould not be load with is_cpio_flush forced 0 too. -+ // Remember we do not allocate historic buffer. -+ // Let's assume it will never fail ! -+ if (wr->next_index >= wr->max_index) { -+ // realloc wr->buffer_index -+ uint8_t **p = wr->buffer_index; -+ wr->buffer_index = (uint8_t **) -+ large_malloc(LZMA_IOBUF_SIZE + -+ sizeof(*p) * wr->max_index); -+ if (wr->max_index) { -+ memcpy(wr->buffer_index, p, -+ sizeof(*p) * wr->max_index); -+ free(p); -+ } -+ wr->max_index += LZMA_IOBUF_SIZE / sizeof(*p); -+ } -+ wr->buffer_index[wr->next_index++] = -+ (uint8_t *) large_malloc(LZMA_IOBUF_SIZE); -+ } -+ wr->buffer_index[wr->buffer_pos / LZMA_IOBUF_SIZE] -+ [wr->buffer_pos % LZMA_IOBUF_SIZE] = -+ wr->previous_byte = byte; -+ wr->buffer_pos++; -+} -+ - static inline void INIT write_byte(struct writer *wr, uint8_t byte) - { -+ if (wr->is_cpio_flush) { -+ write_byte_if_cpio(wr, byte); -+ return; -+ } - wr->buffer[wr->buffer_pos++] = wr->previous_byte = byte; - if (wr->flush && wr->buffer_pos == wr->header->dict_size) { - wr->buffer_pos = 0; -@@ -328,7 +373,21 @@ - static inline void INIT copy_bytes(struct writer *wr, - uint32_t rep0, int len) - { -- do { -+ if (wr->is_cpio_flush) { -+ int32_t pos; -+ uint32_t offs = rep0; -+ while (offs > wr->header->dict_size) -+ offs -= wr->header->dict_size; -+ pos = wr->buffer_pos - offs; -+ do { -+ write_byte_if_cpio(wr, -+ wr->buffer_index[pos / LZMA_IOBUF_SIZE] -+ [pos % LZMA_IOBUF_SIZE]); -+ pos++; -+ len--; -+ } while (len != 0 && wr->buffer_pos < wr->header->dst_size); -+ } -+ else do { - copy_byte(wr, rep0); - len--; - } while (len != 0 && wr->buffer_pos < wr->header->dst_size); -@@ -339,6 +398,9 @@ - int pos_state, uint16_t *prob, - int lc, uint32_t literal_pos_mask) { - int mi = 1; -+ static const int state[LZMA_NUM_STATES] = -+ { 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 4, 5 }; -+ - rc_update_bit_0(rc, prob); - prob = (p + LZMA_LITERAL + - (LZMA_LIT_SIZE -@@ -369,18 +431,13 @@ - rc_get_bit(rc, prob_lit, &mi); - } - write_byte(wr, mi); -- if (cst->state < 4) -- cst->state = 0; -- else if (cst->state < 10) -- cst->state -= 3; -- else -- cst->state -= 6; -+ cst->state = state[cst->state]; - } - - static inline void INIT process_bit1(struct writer *wr, struct rc *rc, - struct cstate *cst, uint16_t *p, - int pos_state, uint16_t *prob) { -- int offset; -+ int offset; - uint16_t *prob_len; - int num_bits; - int len; -@@ -396,7 +453,7 @@ - prob = p + LZMA_LEN_CODER; - } else { - rc_update_bit_1(rc, prob); -- prob = p + LZMA_IS_REP_G0 + cst->state; -+ prob += LZMA_IS_REP_G0 - LZMA_IS_REP; - if (rc_is_bit_0(rc, prob)) { - rc_update_bit_0(rc, prob); - prob = (p + LZMA_IS_REP_0_LONG -@@ -417,13 +474,13 @@ - uint32_t distance; - - rc_update_bit_1(rc, prob); -- prob = p + LZMA_IS_REP_G1 + cst->state; -+ prob += LZMA_IS_REP_G1 - LZMA_IS_REP_G0; - if (rc_is_bit_0(rc, prob)) { - rc_update_bit_0(rc, prob); - distance = cst->rep1; - } else { - rc_update_bit_1(rc, prob); -- prob = p + LZMA_IS_REP_G2 + cst->state; -+ prob += LZMA_IS_REP_G2 - LZMA_IS_REP_G1; - if (rc_is_bit_0(rc, prob)) { - rc_update_bit_0(rc, prob); - distance = cst->rep2; -@@ -444,24 +501,24 @@ - prob_len = prob + LZMA_LEN_CHOICE; - if (rc_is_bit_0(rc, prob_len)) { - rc_update_bit_0(rc, prob_len); -- prob_len = (prob + LZMA_LEN_LOW -+ prob_len += LZMA_LEN_LOW - LZMA_LEN_CHOICE - + (pos_state << -- LZMA_LEN_NUM_LOW_BITS)); -+ LZMA_LEN_NUM_LOW_BITS); - offset = 0; - num_bits = LZMA_LEN_NUM_LOW_BITS; - } else { - rc_update_bit_1(rc, prob_len); -- prob_len = prob + LZMA_LEN_CHOICE_2; -+ prob_len += LZMA_LEN_CHOICE_2 - LZMA_LEN_CHOICE; - if (rc_is_bit_0(rc, prob_len)) { - rc_update_bit_0(rc, prob_len); -- prob_len = (prob + LZMA_LEN_MID -+ prob_len += LZMA_LEN_MID - LZMA_LEN_CHOICE_2 - + (pos_state << -- LZMA_LEN_NUM_MID_BITS)); -+ LZMA_LEN_NUM_MID_BITS); - offset = 1 << LZMA_LEN_NUM_LOW_BITS; - num_bits = LZMA_LEN_NUM_MID_BITS; - } else { - rc_update_bit_1(rc, prob_len); -- prob_len = prob + LZMA_LEN_HIGH; -+ prob_len += LZMA_LEN_HIGH - LZMA_LEN_CHOICE_2; - offset = ((1 << LZMA_LEN_NUM_LOW_BITS) - + (1 << LZMA_LEN_NUM_MID_BITS)); - num_bits = LZMA_LEN_NUM_HIGH_BITS; -@@ -529,6 +586,7 @@ - void(*error_fn)(char *x) - ) - { -+ extern int cpio_flush_buffer(void*, unsigned int); - struct lzma_header header; - int lc, pb, lp; - uint32_t pos_state_mask; -@@ -563,6 +621,10 @@ - wr.global_pos = 0; - wr.previous_byte = 0; - wr.buffer_pos = 0; -+ wr.is_cpio_flush = 0; -+ if (flush == cpio_flush_buffer) -+ wr.is_cpio_flush = 1; -+ wr.buffer_index = NULL; - - rc_init(&rc, fill, inbuf, in_len); - -@@ -596,23 +658,23 @@ - if (header.dict_size == 0) - header.dict_size = 1; - -- if (output) -+ if (output || wr.is_cpio_flush) - wr.buffer = output; - else { - wr.bufsize = MIN(header.dst_size, header.dict_size); - wr.buffer = large_malloc(wr.bufsize); - } -- if (wr.buffer == NULL) -+ if (wr.buffer == NULL && !wr.is_cpio_flush) - goto exit_1; - - num_probs = LZMA_BASE_SIZE + (LZMA_LIT_SIZE << (lc + lp)); - p = (uint16_t *) large_malloc(num_probs * sizeof(*p)); - if (p == 0) - goto exit_2; -- num_probs = LZMA_LITERAL + (LZMA_LIT_SIZE << (lc + lp)); -+ num_probs += LZMA_LITERAL - LZMA_BASE_SIZE; - for (i = 0; i < num_probs; i++) - p[i] = (1 << RC_MODEL_TOTAL_BITS) >> 1; -- -+ wr.max_index = wr.next_index = 0; - rc_init_code(&rc); - - while (get_pos(&wr) < header.dst_size) { -@@ -631,12 +693,25 @@ - - if (posp) - *posp = rc.ptr-rc.buffer; -- if (wr.flush) -+ if (wr.is_cpio_flush) { -+ int i; -+ for (i = 0; i < wr.next_index -1; i++) { -+ wr.flush(wr.buffer_index[i], LZMA_IOBUF_SIZE); -+ large_free(wr.buffer_index[i]); -+ } -+ if (i < wr.next_index) { -+ wr.flush(wr.buffer_index[i], -+ wr.buffer_pos % LZMA_IOBUF_SIZE); -+ large_free(wr.buffer_index[i]); -+ } -+ large_free(wr.buffer_index); -+ } -+ else if (wr.flush) - wr.flush(wr.buffer, wr.buffer_pos); - ret = 0; - large_free(p); - exit_2: -- if (!output) -+ if (!output && !wr.is_cpio_flush) - large_free(wr.buffer); - exit_1: - if (!buf) diff -r a3e929634247 -r 371673f39e46 kernel-modular/stuff/list_modules.sh --- a/kernel-modular/stuff/list_modules.sh Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -#!/bin/sh -# list_modules.sh: list Linux kernel modules for SliTaz GNU/Linux. -# 2008/06/07 - GNU General Public License. -# - -find_modules() -{ -find $_pkg/lib/modules/*-slitaz/kernel/$1 -type f -exec basename {} \; -} - -if [ -z "$1" ] ; then - cat 1>&2 <list - -EOT - exit 1 -fi - -if [ -z "$(ls -d $_pkg/lib/modules/*-slitaz/kernel/$1 2> /dev/null)" ] ; then - cat 1>&2 < /dev/null + cp $wanted_stuff/etc/init.d/network.sh $stuff/etc/init.d/ + cp $wanted_stuff/etc/network.conf $stuff/etc/ sed -i -e 's#^dhcp(.*#&\ if [ "$LAN_DHCP" = "yes" ] ; then\ echo "Starting udhcpc client on: $LAN_INTERFACE..."\ - /sbin/udhcpc -b -T 1 -A 12 -i $LAN_INTERFACE -p /var/run/udhcpc.$LAN_INTERFACE.pid\ + udhcpc -b -T 1 -A 12 -i $LAN_INTERFACE -p /var/run/udhcpc.$LAN_INTERFACE.pid\ fi#' -e 's#^static_ip(.*#&\ if [ "$LAN_STATIC" = "yes" ] ; then\ echo "Configuring static IP on $LAN_INTERFACE: $LAN_IP..."\ - /sbin/ifconfig $LAN_INTERFACE $LAN_IP netmask $LAN_NETMASK up\ - fi#' fs/etc/init.d/network.sh - cat >> fs/etc/network.conf <> $stuff/etc/network.conf <\.]\)val|\1u.val|;s|\([>\.]\)next|\1u.next|;216s|};|} u;|' lib/inflate.c + sed '/DEBUG/,/* kstrdup/d' < mm/slab.c > mm/kstrdup.c + echo 'obj-y += kstrdup.o' >> mm/Makefile + sed -i 's|3.1024|11*256|' arch/i386/boot/compressed/misc.c + which advdef 2> /dev/null && + sed -i 's|gzip)|&\n advdef -z4 $@|' usr/Makefile arch/i386/boot/compressed/Makefile + + if [ ! -s $WOK/busybox/source/busybox*/rootfs.cpio ]; then + tazwok cook busybox + fi + cp $WOK/busybox/source/busybox*/rootfs.cpio $src + cp $WOK/busybox/source/busybox*/.config $src/config-busybox + mkdir $src/slitaz + cp $stuff/list_modules.sh $src/slitaz + + sed -i 's/^config %config/config/' Makefile + cp $stuff/linux-$VERSION-slitaz.config .config + yes '' | make ARCH=i386 HOSTCC=gcc-2 config + make ARCH=i386 CC=gcc-2 HOSTCC=gcc-2 -j 4 bzImage + grep -q "CONFIG_MODULES=y" .config && + make ARCH=i386 CC=gcc-2 HOSTCC=gcc-2 -j 4 modules && + make ARCH=i386 INSTALL_MOD_PATH=$DESTDIR -j 1 modules_install || true +} + +# Rules to gen a SliTaz package suitable for Tazpkg. +genpkg_rules() +{ + mkdir $fs/boot + cp -a $src/arch/i386/boot/bzImage $fs/boot/ + cp -a $src/System.map $fs/boot/ + cp -a $src/.config $fs/boot/config + cp -a $src/config-busybox $fs/boot +} + +# Pre and post install commands for Tazpkg. +post_install() +{ + echo "Processing post-install commands..." + chroot "$1/" depmod -a $VERSION-slitaz + # GRUB stuff. + if [ -f "$1/boot/grub/menu.lst" ]; then + root_dev=`cat $1/boot/grub/menu.lst | grep root= | sed 's/.*root=\([^ ]*\).*/\1/' | head -n 1` + grub_dev=`cat $1/boot/grub/menu.lst | grep "root (" | head -n 1` + # Add new kernel entry in case of upgrade for installed system. + if ! grep -q $SOURCE-$VERSION-slitaz $1/boot/grub/menu.lst; then + cat >> $1/boot/grub/menu.lst << EOT + +title SliTaz GNU/Linux (Kernel $VERSION-slitaz) +$grub_dev +kernel /boot/vmlinuz-$VERSION-slitaz root=$root_dev +EOT + fi + # Display information message. + cat < kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +# CONFIG_MTD is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# +# CONFIG_PNP is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_XD is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_SX8 is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=4 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y +# CONFIG_LBD is not set +# CONFIG_CDROM_PKTCDVD is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +# CONFIG_IOSCHED_AS is not set +# CONFIG_IOSCHED_DEADLINE is not set +CONFIG_IOSCHED_CFQ=m +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +CONFIG_IDE=y +# CONFIG_BLK_DEV_IDE is not set +CONFIG_BLK_DEV_HD_ONLY=y +CONFIG_BLK_DEV_HD=y + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=m +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +# CONFIG_BLK_DEV_SD is not set +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set + +# +# SCSI Transport Attributes +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set + +# +# SCSI low-level drivers +# +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_7000FASST is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AHA152X is not set +# CONFIG_SCSI_AHA1542 is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_SCSI_IN2000 is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_SATA is not set +# CONFIG_SCSI_BUSLOGIC is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_DTC3280 is not set +# CONFIG_SCSI_EATA is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_GDTH is not set +# CONFIG_SCSI_GENERIC_NCR5380 is not set +# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_NCR53C406A is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_PAS16 is not set +# CONFIG_SCSI_PSI240I is not set +# CONFIG_SCSI_QLOGIC_FAS is not set +# CONFIG_SCSI_QLOGIC_FC is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +CONFIG_SCSI_QLA2XXX=m +# CONFIG_SCSI_QLA21XX is not set +# CONFIG_SCSI_QLA22XX is not set +# CONFIG_SCSI_QLA2300 is not set +# CONFIG_SCSI_QLA2322 is not set +# CONFIG_SCSI_QLA6312 is not set +# CONFIG_SCSI_QLA24XX is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_SYM53C416 is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_T128 is not set +# CONFIG_SCSI_U14_34F is not set +# CONFIG_SCSI_ULTRASTOR is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set + +# +# Old CD-ROM drivers (not SCSI, not IDE) +# +# CONFIG_CD_NO_IDESCSI is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_IEEE1394 is not set + +# +# I2O device support +# +# CONFIG_I2O is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# +# PHY device support +# +# CONFIG_PHYLIB is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +# CONFIG_MII is not set +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +CONFIG_NET_VENDOR_3COM=y +# CONFIG_EL1 is not set +# CONFIG_EL2 is not set +# CONFIG_ELPLUS is not set +# CONFIG_EL16 is not set +CONFIG_EL3=m +# CONFIG_3C515 is not set +# CONFIG_VORTEX is not set +# CONFIG_TYPHOON is not set +# CONFIG_LANCE is not set +# CONFIG_NET_VENDOR_SMC is not set +# CONFIG_NET_VENDOR_RACAL is not set + +# +# Tulip family network device support +# +# CONFIG_NET_TULIP is not set +# CONFIG_AT1700 is not set +# CONFIG_DEPCA is not set +# CONFIG_HP100 is not set +CONFIG_NET_ISA=y +# CONFIG_E2100 is not set +# CONFIG_EWRK3 is not set +# CONFIG_EEXPRESS is not set +# CONFIG_EEXPRESS_PRO is not set +# CONFIG_HPLAN_PLUS is not set +# CONFIG_HPLAN is not set +# CONFIG_LP486E is not set +# CONFIG_ETH16I is not set +CONFIG_NE2000=m +# CONFIG_ZNET is not set +# CONFIG_SEEQ8005 is not set +CONFIG_NET_PCI=y +# CONFIG_PCNET32 is not set +# CONFIG_AMD8111_ETH is not set +# CONFIG_ADAPTEC_STARFIRE is not set +# CONFIG_AC3200 is not set +# CONFIG_APRICOT is not set +# CONFIG_B44 is not set +# CONFIG_FORCEDETH is not set +CONFIG_CS89x0=m +# CONFIG_DGRS is not set +# CONFIG_EEPRO100 is not set +# CONFIG_E100 is not set +# CONFIG_FEALNX is not set +# CONFIG_NATSEMI is not set +# CONFIG_NE2K_PCI is not set +# CONFIG_8139CP is not set +# CONFIG_8139TOO is not set +# CONFIG_SIS900 is not set +# CONFIG_EPIC100 is not set +# CONFIG_SUNDANCE is not set +# CONFIG_TLAN is not set +# CONFIG_VIA_RHINE is not set + +# +# Ethernet (1000 Mbit) +# +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SIS190 is not set +# CONFIG_SKGE is not set +# CONFIG_SK98LIN is not set +# CONFIG_VIA_VELOCITY is not set +# CONFIG_TIGON3 is not set +# CONFIG_BNX2 is not set + +# +# Ethernet (10000 Mbit) +# +# CONFIG_CHELSIO_T1 is not set +# CONFIG_IXGB is not set +# CONFIG_S2IO is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPPOE=m +# CONFIG_SLIP is not set +# CONFIG_NET_FC is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_KGDBOE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NETPOLL_RX is not set +# CONFIG_NETPOLL_TRAP is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Telephony Support +# +# CONFIG_PHONE is not set + +# +# Input device support +# +CONFIG_INPUT=y + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_8250_NR_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=m +# CONFIG_SERIAL_JSM is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_HW_RANDOM is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_GEN_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_SONYPI is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +CONFIG_AGP=m +CONFIG_AGP_ALI=m +CONFIG_AGP_ATI=m +# CONFIG_AGP_AMD is not set +# CONFIG_AGP_AMD64 is not set +CONFIG_AGP_INTEL=m +CONFIG_AGP_NVIDIA=m +CONFIG_AGP_SIS=m +# CONFIG_AGP_SWORKS is not set +CONFIG_AGP_VIA=m +# CONFIG_AGP_EFFICEON is not set +# CONFIG_DRM is not set +# CONFIG_MWAVE is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_HANGCHECK_TIMER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set + +# +# I2C support +# +CONFIG_I2C=m +# CONFIG_I2C_CHARDEV is not set + +# +# I2C Algorithms +# +CONFIG_I2C_ALGOBIT=m +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_ELEKTOR is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_I810 is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_PROSAVAGE is not set +# CONFIG_I2C_SAVAGE4 is not set +# CONFIG_SCx200_ACB is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set +# CONFIG_I2C_VOODOO3 is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# Dallas's 1-wire bus +# +# CONFIG_W1 is not set + +# +# Hardware Monitoring support +# +# CONFIG_HWMON is not set +# CONFIG_HWMON_VID is not set + +# +# Misc devices +# +# CONFIG_IBM_ASM is not set + +# +# Multimedia Capabilities Port drivers +# + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +CONFIG_FB=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_SOFT_CURSOR=y +# CONFIG_FB_MACMODES is not set +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_CIRRUS=m +CONFIG_FB_PM2=m +# CONFIG_FB_PM2_FIFO_DISCONNECT is not set +CONFIG_FB_CYBER2000=m +CONFIG_FB_ARC=m +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_VGA16=m +CONFIG_FB_VESA=y +# CONFIG_VIDEO_SELECT is not set +CONFIG_FB_HGA=m +# CONFIG_FB_HGA_ACCEL is not set +CONFIG_FB_NVIDIA=m +# CONFIG_FB_NVIDIA_I2C is not set +CONFIG_FB_RIVA=m +# CONFIG_FB_RIVA_I2C is not set +# CONFIG_FB_RIVA_DEBUG is not set +# CONFIG_FB_I810 is not set +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +CONFIG_FB_MATROX=m +# CONFIG_FB_MATROX_MILLENIUM is not set +# CONFIG_FB_MATROX_MYSTIQUE is not set +# CONFIG_FB_MATROX_G is not set +# CONFIG_FB_MATROX_I2C is not set +# CONFIG_FB_MATROX_MULTIHEAD is not set +# CONFIG_FB_RADEON_OLD is not set +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY128=m +CONFIG_FB_ATY=m +# CONFIG_FB_ATY_CT is not set +# CONFIG_FB_ATY_GX is not set +CONFIG_FB_SAVAGE=m +# CONFIG_FB_SAVAGE_I2C is not set +# CONFIG_FB_SAVAGE_ACCEL is not set +CONFIG_FB_SIS=m +# CONFIG_FB_SIS_300 is not set +# CONFIG_FB_SIS_315 is not set +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_VOODOO1=m +# CONFIG_FB_CYBLA is not set +CONFIG_FB_TRIDENT=m +# CONFIG_FB_TRIDENT_ACCEL is not set +# CONFIG_FB_GEODE is not set +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_VIRTUAL=m + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +# CONFIG_MDA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=m +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y + +# +# Logo configuration +# +# CONFIG_LOGO is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB=m +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +# CONFIG_USB_DEVICEFS is not set +# CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_EHCI_HCD=m +# CONFIG_USB_EHCI_SPLIT_ISO is not set +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_SL811_HCD=m + +# +# USB Device Class drivers +# +# CONFIG_USB_BLUETOOTH_TTY is not set +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set + +# +# USB Input Devices +# +# CONFIG_USB_HID is not set + +# +# USB HID Boot Protocol drivers +# +CONFIG_USB_KBD=m +CONFIG_USB_MOUSE=m +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_MTOUCH is not set +# CONFIG_USB_ITMTOUCH is not set +# CONFIG_USB_EGALAX is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB Multimedia devices +# +# CONFIG_USB_DABUSB is not set + +# +# Video4Linux support is needed for USB Multimedia device support +# + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET is not set +CONFIG_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=m +# CONFIG_USB_SERIAL_GENERIC is not set +# CONFIG_USB_SERIAL_AIRPRIME is not set +# CONFIG_USB_SERIAL_BELKIN is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_CP2101 is not set +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +# CONFIG_USB_SERIAL_FTDI_SIO is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_PL2303 is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_OMNINET is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGETKIT is not set +# CONFIG_USB_PHIDGETSERVO is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set + +# +# MMC/SD Card support +# +# CONFIG_MMC is not set + +# +# InfiniBand support +# +# CONFIG_INFINIBAND is not set + +# +# SN Devices +# + +# +# File systems +# +# CONFIG_EXT2_FS is not set +CONFIG_EXT3_FS=m +# CONFIG_EXT3_FS_XATTR is not set +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +# CONFIG_REISERFS_FS_XATTR is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +CONFIG_XFS_FS=m +CONFIG_XFS_EXPORT=y +# CONFIG_XFS_QUOTA is not set +# CONFIG_XFS_SECURITY is not set +# CONFIG_XFS_POSIX_ACL is not set +# CONFIG_XFS_RT is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_INOTIFY is not set +# CONFIG_QUOTA is not set +# CONFIG_DNOTIFY is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +CONFIG_FUSE_FS=m + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +# CONFIG_JOLIET is not set +# CONFIG_ZISOFS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +# CONFIG_PROC_KCORE is not set +CONFIG_SYSFS=y +# CONFIG_TMPFS is not set +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_RELAYFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +CONFIG_HFS_FS=m +CONFIG_HFSPLUS_FS=m +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFSD=m +# CONFIG_NFSD_V3 is not set +CONFIG_NFSD_TCP=y +CONFIG_LOCKD=m +CONFIG_EXPORTFS=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPCSEC_GSS_SPKM3 is not set +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=m +CONFIG_NLS_DEFAULT="iso8859-1" +# CONFIG_NLS_CODEPAGE_437 is not set +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +# CONFIG_NLS_ISO8859_1 is not set +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=m + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +# CONFIG_DEBUG_KERNEL is not set +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_EARLY_PRINTK=y + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Hardware crypto devices +# + +# +# Library routines +# +CONFIG_CRC_CCITT=m +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=m +CONFIG_ZLIB_DEFLATE=m +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_X86_BIOS_REBOOT=y diff -r a3e929634247 -r 371673f39e46 linux/stuff/list_modules.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/linux/stuff/list_modules.sh Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,43 @@ +#!/bin/sh +# list_modules.sh: list Linux kernel modules for SliTaz GNU/Linux. +# 2008/06/07 - GNU General Public License. +# + +find_modules() +{ +find $_pkg/lib/modules/*-slitaz/kernel/$1 -type f -exec basename {} \; +} + +if [ -z "$1" ] ; then + cat 1>&2 <list + +EOT + exit 1 +fi + +if [ -z "$(ls -d $_pkg/lib/modules/*-slitaz/kernel/$1 2> /dev/null)" ] ; then + cat 1>&2 <> $1/modules } + +config_form() +{ + cat <3Com Etherlink III (3c509, 3c509B) ISA/PnP Ethernet driver + + + + + + + + + + + + + + + + + +
IRQ
Tranceiver
Maximum events handled per interrupt
Debug
+EOT +} diff -r a3e929634247 -r 371673f39e46 module-btrfs/receipt --- a/module-btrfs/receipt Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -# SliTaz package receipt. - -PACKAGE="module-btrfs" -VERSION="2.6.37" -CATEGORY="base-system" -SHORT_DESC="Kernel module for the btrfs filesystem" -MAINTAINER="pascal.bellard@slitaz.org" -LICENSE="GPL2" -WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" -CONFIG_FILES="/etc/filesystems" - -# Rules to gen a SliTaz package suitable for Tazpkg. -genpkg_rules() -{ - local path - path=lib/modules/$VERSION-slitaz/kernel - mkdir -p $fs/$path $fs/etc - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg - $src/slitaz/list_modules.sh fs/${PACKAGE#*-} | while read module; do - dir=$path/$(dirname $module) - [ -d $fs/$dir ] || mkdir -p $fs/$dir - cp -a $_pkg/$path/$module $fs/$dir - done - touch $fs/etc/filesystems -} - -# Post install/remove commands for Tazpkg. -post_install() -{ - grep -qs ^${PACKAGE#*-}$ $1/etc/filesystems || \ - echo "${PACKAGE#*-}" >> $1/etc/filesystems - chroot "$1/" depmod -a $VERSION-slitaz -} diff -r a3e929634247 -r 371673f39e46 module-cifs/receipt --- a/module-cifs/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/module-cifs/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -1,23 +1,23 @@ # SliTaz package receipt. PACKAGE="module-cifs" -VERSION="2.6.37" +VERSION="2.6.14" CATEGORY="base-system" SHORT_DESC="Kernel module for the cifs (samba) filesystem" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="GPL2" WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" +WANTED="linux" CONFIG_FILES="/etc/filesystems" # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { local path - path=lib/modules/$VERSION-slitaz/kernel + export src=$WOK/$WANTED/source/linux-$VERSION + export _pkg=$WOK/$WANTED/install + path=lib/modules/$(ls $_pkg/lib/modules)/kernel mkdir -p $fs/$path $fs/etc - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg $src/slitaz/list_modules.sh fs/${PACKAGE#*-} | while read module; do dir=$path/$(dirname $module) [ -d $fs/$dir ] || mkdir -p $fs/$dir @@ -29,7 +29,13 @@ # Post install/remove commands for Tazpkg. post_install() { + echo ${PACKAGE#*-} >> $1/modules grep -qs ^${PACKAGE#*-}$ $1/etc/filesystems || \ echo "${PACKAGE#*-}" >> $1/etc/filesystems - chroot "$1/" depmod -a $VERSION-slitaz } + +#cifs.ko: +#parm=CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 +#parm=cifs_min_rcv:Network buffers in pool. Default: 4 Range: 1 to 64 +#parm=cifs_min_small:Small network buffers in pool. Default: 30 Range: 2 to 256 +#parm=cifs_max_pending:Simultaneous requests to server. Default: 50 Range: 2 to 256 diff -r a3e929634247 -r 371673f39e46 module-cs89x0/receipt --- a/module-cs89x0/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/module-cs89x0/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -1,22 +1,22 @@ # SliTaz package receipt. PACKAGE="module-cs89x0" -VERSION="2.6.37" +VERSION="2.6.14" CATEGORY="base-system" SHORT_DESC="Kernel module for the cs89x0 driver" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="GPL2" WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" +WANTED="linux" # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { local path - path=lib/modules/$VERSION-slitaz/kernel + export src=$WOK/$WANTED/source/linux-$VERSION + export _pkg=$WOK/$WANTED/install + path=lib/modules/$(ls $_pkg/lib/modules)/kernel mkdir -p $fs/$path - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg $src/slitaz/list_modules.sh drivers/net/${PACKAGE#*-}* | while read module; do dir=$path/$(dirname $module) [ -d $fs/$dir ] || mkdir -p $fs/$dir @@ -27,5 +27,45 @@ # Post install/remove commands for Tazpkg. post_install() { - chroot "$1/" depmod -a $VERSION-slitaz + [ "$IRQCS89" ] && IRQCS89="|irq=${IRQCS89%%[, ]*}" + [ "$IOCS89" ] && IOCS89="|io=${IOCS89%%[, ]*}" + echo "${PACKAGE#*-}$IOCS89$IRQCS89|mode=${MODECS89:-rj45}|debug=${DEBUGCS89:-0}" >> $1/modules } + +config_form() +{ + cat <CS89x0 Ethernet driver + + + + + + + + + + + + + + + + + +
I/O base
IRQ
Media
Debug
+EOT +} diff -r a3e929634247 -r 371673f39e46 module-ext3/receipt --- a/module-ext3/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/module-ext3/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -1,23 +1,23 @@ # SliTaz package receipt. PACKAGE="module-ext3" -VERSION="2.6.37" +VERSION="2.6.14" CATEGORY="base-system" SHORT_DESC="Kernel module for the ext3 filesystem" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="GPL2" WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" +WANTED="linux" CONFIG_FILES="/etc/filesystems" # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { local path - path=lib/modules/$VERSION-slitaz/kernel + export src=$WOK/$WANTED/source/linux-$VERSION + export _pkg=$WOK/$WANTED/install + path=lib/modules/$(ls $_pkg/lib/modules)/kernel mkdir -p $fs/$path $fs/etc - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg $src/slitaz/list_modules.sh fs/${PACKAGE#*-} | while read module; do dir=$path/$(dirname $module) [ -d $fs/$dir ] || mkdir -p $fs/$dir @@ -29,7 +29,7 @@ # Post install/remove commands for Tazpkg. post_install() { + echo ${PACKAGE#*-} >> $1/modules grep -qs ^${PACKAGE#*-}$ $1/etc/filesystems || \ echo "${PACKAGE#*-}" >> $1/etc/filesystems - chroot "$1/" depmod -a $VERSION-slitaz } diff -r a3e929634247 -r 371673f39e46 module-ext4/receipt --- a/module-ext4/receipt Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -# SliTaz package receipt. - -PACKAGE="module-ext4" -VERSION="2.6.37" -CATEGORY="base-system" -SHORT_DESC="Kernel module for the ext4 filesystem" -MAINTAINER="pascal.bellard@slitaz.org" -LICENSE="GPL2" -WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" -CONFIG_FILES="/etc/filesystems" - -# Rules to gen a SliTaz package suitable for Tazpkg. -genpkg_rules() -{ - local path - path=lib/modules/$VERSION-slitaz/kernel - mkdir -p $fs/$path $fs/etc - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg - $src/slitaz/list_modules.sh fs/${PACKAGE#*-} | while read module; do - dir=$path/$(dirname $module) - [ -d $fs/$dir ] || mkdir -p $fs/$dir - cp -a $_pkg/$path/$module $fs/$dir - done - touch $fs/etc/filesystems -} - -# Post install/remove commands for Tazpkg. -post_install() -{ - grep -qs ^${PACKAGE#*-}$ $1/etc/filesystems || \ - echo "${PACKAGE#*-}" >> $1/etc/filesystems - chroot "$1/" depmod -a $VERSION-slitaz -} diff -r a3e929634247 -r 371673f39e46 module-fat/receipt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/module-fat/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,37 @@ +# SliTaz package receipt. + +PACKAGE="module-fat" +VERSION="2.6.14" +CATEGORY="base-system" +SHORT_DESC="Kernel module for the vfat filesystem" +MAINTAINER="pascal.bellard@slitaz.org" +LICENSE="GPL2" +WEB_SITE="http://tiny.slitaz.org/" +WANTED="linux" +CONFIG_FILES="/etc/filesystems" + +# Rules to gen a SliTaz package suitable for Tazpkg. +genpkg_rules() +{ + local path + export src=$WOK/$WANTED/source/linux-$VERSION + export _pkg=$WOK/$WANTED/install + path=lib/modules/$(ls $_pkg/lib/modules)/kernel + mkdir -p $fs/$path $fs/etc + $src/slitaz/list_modules.sh fs/${PACKAGE#*-} | while read module; do + dir=$path/$(dirname $module) + [ -d $fs/$dir ] || mkdir -p $fs/$dir + cp -a $_pkg/$path/$module $fs/$dir + done + touch $fs/etc/filesystems +} + +# Post install/remove commands for Tazpkg. +post_install() +{ + echo ${PACKAGE#*-} >> $1/modules + for i in vfat fat msdos ; do + grep -qs ^$i$ $1/etc/filesystems || \ + echo "$i" >> $1/etc/filesystems + done +} diff -r a3e929634247 -r 371673f39e46 module-fuse/receipt --- a/module-fuse/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/module-fuse/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -1,23 +1,23 @@ # SliTaz package receipt. PACKAGE="module-fuse" -VERSION="2.6.37" +VERSION="2.6.14" CATEGORY="base-system" SHORT_DESC="Kernel module for the fuse filesystem" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="GPL2" WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" +WANTED="linux" CONFIG_FILES="/etc/filesystems" # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { local path - path=lib/modules/$VERSION-slitaz/kernel + export src=$WOK/$WANTED/source/linux-$VERSION + export _pkg=$WOK/$WANTED/install + path=lib/modules/$(ls $_pkg/lib/modules)/kernel mkdir -p $fs/$path $fs/etc - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg $src/slitaz/list_modules.sh fs/${PACKAGE#*-} | while read module; do dir=$path/$(dirname $module) [ -d $fs/$dir ] || mkdir -p $fs/$dir @@ -29,7 +29,7 @@ # Post install/remove commands for Tazpkg. post_install() { + echo ${PACKAGE#*-} >> $1/modules grep -qs ^${PACKAGE#*-}$ $1/etc/filesystems || \ echo "${PACKAGE#*-}" >> $1/etc/filesystems - chroot "$1/" depmod -a $VERSION-slitaz } diff -r a3e929634247 -r 371673f39e46 module-hfsplus/receipt --- a/module-hfsplus/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/module-hfsplus/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -1,23 +1,23 @@ # SliTaz package receipt. PACKAGE="module-hfsplus" -VERSION="2.6.37" +VERSION="2.6.14" CATEGORY="base-system" SHORT_DESC="Kernel module for the hfsplus filesystem" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="GPL2" WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" +WANTED="linux" CONFIG_FILES="/etc/filesystems" # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { local path - path=lib/modules/$VERSION-slitaz/kernel + export src=$WOK/$WANTED/source/linux-$VERSION + export _pkg=$WOK/$WANTED/install + path=lib/modules/$(ls $_pkg/lib/modules)/kernel mkdir -p $fs/$path $fs/etc - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg $src/slitaz/list_modules.sh fs/${PACKAGE#*-} | while read module; do dir=$path/$(dirname $module) [ -d $fs/$dir ] || mkdir -p $fs/$dir @@ -29,7 +29,7 @@ # Post install/remove commands for Tazpkg. post_install() { + echo ${PACKAGE#*-} >> $1/modules grep -qs ^${PACKAGE#*-}$ $1/etc/filesystems || \ echo "${PACKAGE#*-}" >> $1/etc/filesystems - chroot "$1/" depmod -a $VERSION-slitaz } diff -r a3e929634247 -r 371673f39e46 module-isofs/receipt --- a/module-isofs/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/module-isofs/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -1,23 +1,23 @@ # SliTaz package receipt. PACKAGE="module-isofs" -VERSION="2.6.37" +VERSION="2.6.14" CATEGORY="base-system" SHORT_DESC="Kernel module for the iso9660 filesystem" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="GPL2" WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" +WANTED="linux" CONFIG_FILES="/etc/filesystems" # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { local path - path=lib/modules/$VERSION-slitaz/kernel + export src=$WOK/$WANTED/source/linux-$VERSION + export _pkg=$WOK/$WANTED/install + path=lib/modules/$(ls $_pkg/lib/modules)/kernel mkdir -p $fs/$path $fs/etc - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg $src/slitaz/list_modules.sh fs/${PACKAGE#*-} | while read module; do dir=$path/$(dirname $module) [ -d $fs/$dir ] || mkdir -p $fs/$dir @@ -29,7 +29,7 @@ # Post install/remove commands for Tazpkg. post_install() { + echo ${PACKAGE#*-} >> $1/modules grep -qs ^${PACKAGE#*-}$ $1/etc/filesystems || \ echo "${PACKAGE#*-}" >> $1/etc/filesystems - chroot "$1/" depmod -a $VERSION-slitaz } diff -r a3e929634247 -r 371673f39e46 module-lguest/receipt --- a/module-lguest/receipt Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -# SliTaz package receipt. - -PACKAGE="module-lguest" -VERSION="2.6.37" -CATEGORY="base-system" -SHORT_DESC="Kernel module for the lguest driver" -MAINTAINER="pascal.bellard@slitaz.org" -LICENSE="GPL2" -WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" - -# Rules to gen a SliTaz package suitable for Tazpkg. -genpkg_rules() -{ - local path - path=lib/modules/$VERSION-slitaz/kernel - mkdir -p $fs/$path - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg - $src/slitaz/list_modules.sh drivers/${PACKAGE#*-} | while read module; do - dir=$path/$(dirname $module) - [ -d $fs/$dir ] || mkdir -p $fs/$dir - cp -a $_pkg/$path/$module $fs/$dir - done -} - -# Post install/remove commands for Tazpkg. -post_install() -{ - chroot "$1/" depmod -a $VERSION-slitaz -} diff -r a3e929634247 -r 371673f39e46 module-ne/receipt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/module-ne/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,54 @@ +# SliTaz package receipt. + +PACKAGE="module-ne" +VERSION="2.6.14" +CATEGORY="base-system" +SHORT_DESC="Kernel module for the ne2000 driver" +MAINTAINER="pascal.bellard@slitaz.org" +LICENSE="GPL2" +WEB_SITE="http://tiny.slitaz.org/" +WANTED="linux" + +# Rules to gen a SliTaz package suitable for Tazpkg. +genpkg_rules() +{ + local path + export src=$WOK/$WANTED/source/linux-$VERSION + export _pkg=$WOK/$WANTED/install + path=lib/modules/$(ls $_pkg/lib/modules)/kernel + mkdir -p $fs/$path + $src/slitaz/list_modules.sh drivers/net/${PACKAGE#*-}* | while read module; do + dir=$path/$(dirname $module) + [ -d $fs/$dir ] || mkdir -p $fs/$dir + cp -a $_pkg/$path/$module $fs/$dir + done +} + +# Post install/remove commands for Tazpkg. +post_install() +{ + [ "$IRQNE2K" ] && IRQNE2K="|irq=${IRQNE2K// /,}" + [ "$IONE2K" ] && IONE2K="|io=${IONE2K// /,}" + [ "$BADNE2K" == "ON" ] && BADNE2K="|bad" || BADNE2K="" + echo "${PACKAGE#*-}${IONE2K:-|io=0x300}$IRQNE2K$BADNE2K" >> $1/modules +} + +config_form() +{ + cat <NE2000 isa Ethernet driver + + + + + + + + + +
I/O base (required)
IRQ (optionnal)
+ +Accept card with bad signatures
+EOT +} diff -r a3e929634247 -r 371673f39e46 module-nfs/receipt --- a/module-nfs/receipt Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -# SliTaz package receipt. - -PACKAGE="module-nfs" -VERSION="2.6.37" -CATEGORY="base-system" -SHORT_DESC="Kernel module for the nfs filesystem" -MAINTAINER="pascal.bellard@slitaz.org" -LICENSE="GPL2" -WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" -CONFIG_FILES="/etc/filesystems" - -# Rules to gen a SliTaz package suitable for Tazpkg. -genpkg_rules() -{ - local path - path=lib/modules/$VERSION-slitaz/kernel - mkdir -p $fs/$path $fs/etc - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg - $src/slitaz/list_modules.sh fs/${PACKAGE#*-} | while read module; do - dir=$path/$(dirname $module) - [ -d $fs/$dir ] || mkdir -p $fs/$dir - cp -a $_pkg/$path/$module $fs/$dir - done - touch $fs/etc/filesystems -} - -# Post install/remove commands for Tazpkg. -post_install() -{ - grep -qs ^${PACKAGE#*-}$ $1/etc/filesystems || \ - echo "${PACKAGE#*-}" >> $1/etc/filesystems - chroot "$1/" depmod -a $VERSION-slitaz -} diff -r a3e929634247 -r 371673f39e46 module-nfsd/receipt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/module-nfsd/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,35 @@ +# SliTaz package receipt. + +PACKAGE="module-nfsd" +VERSION="2.6.14" +CATEGORY="base-system" +SHORT_DESC="Kernel module for the nfs filesystem (server side)" +MAINTAINER="pascal.bellard@slitaz.org" +LICENSE="GPL2" +WEB_SITE="http://tiny.slitaz.org/" +WANTED="linux" +CONFIG_FILES="/etc/filesystems" + +# Rules to gen a SliTaz package suitable for Tazpkg. +genpkg_rules() +{ + local path + export src=$WOK/$WANTED/source/linux-$VERSION + export _pkg=$WOK/$WANTED/install + path=lib/modules/$(ls $_pkg/lib/modules)/kernel + mkdir -p $fs/$path $fs/etc + $src/slitaz/list_modules.sh fs/${PACKAGE#*-} | while read module; do + dir=$path/$(dirname $module) + [ -d $fs/$dir ] || mkdir -p $fs/$dir + cp -a $_pkg/$path/$module $fs/$dir + done + touch $fs/etc/filesystems +} + +# Post install/remove commands for Tazpkg. +post_install() +{ + echo ${PACKAGE#*-} >> $1/modules + grep -qs ^${PACKAGE#*-}$ $1/etc/filesystems || \ + echo "${PACKAGE#*-}" >> $1/etc/filesystems +} diff -r a3e929634247 -r 371673f39e46 module-reiserfs/receipt --- a/module-reiserfs/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/module-reiserfs/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -1,23 +1,23 @@ # SliTaz package receipt. PACKAGE="module-reiserfs" -VERSION="2.6.37" +VERSION="2.6.14" CATEGORY="base-system" SHORT_DESC="Kernel module for the reiserfs filesystem" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="GPL2" WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" +WANTED="linux" CONFIG_FILES="/etc/filesystems" # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { local path - path=lib/modules/$VERSION-slitaz/kernel + export src=$WOK/$WANTED/source/linux-$VERSION + export _pkg=$WOK/$WANTED/install + path=lib/modules/$(ls $_pkg/lib/modules)/kernel mkdir -p $fs/$path $fs/etc - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg $src/slitaz/list_modules.sh fs/${PACKAGE#*-} | while read module; do dir=$path/$(dirname $module) [ -d $fs/$dir ] || mkdir -p $fs/$dir @@ -29,7 +29,7 @@ # Post install/remove commands for Tazpkg. post_install() { + echo ${PACKAGE#*-} >> $1/modules grep -qs ^${PACKAGE#*-}$ $1/etc/filesystems || \ echo "${PACKAGE#*-}" >> $1/etc/filesystems - chroot "$1/" depmod -a $VERSION-slitaz } diff -r a3e929634247 -r 371673f39e46 module-squashfs/receipt --- a/module-squashfs/receipt Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -# SliTaz package receipt. - -PACKAGE="module-squashfs" -VERSION="2.6.37" -CATEGORY="base-system" -SHORT_DESC="Kernel module for the squashfs filesystem" -MAINTAINER="pascal.bellard@slitaz.org" -LICENSE="GPL2" -WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" -CONFIG_FILES="/etc/filesystems" - -# Rules to gen a SliTaz package suitable for Tazpkg. -genpkg_rules() -{ - local path - path=lib/modules/$VERSION-slitaz/kernel - mkdir -p $fs/$path $fs/etc - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg - $src/slitaz/list_modules.sh fs/${PACKAGE#*-} | while read module; do - dir=$path/$(dirname $module) - [ -d $fs/$dir ] || mkdir -p $fs/$dir - cp -a $_pkg/$path/$module $fs/$dir - done - touch $fs/etc/filesystems -} - -# Post install/remove commands for Tazpkg. -post_install() -{ - grep -qs ^${PACKAGE#*-}$ $1/etc/filesystems || \ - echo "${PACKAGE#*-}" >> $1/etc/filesystems - chroot "$1/" depmod -a $VERSION-slitaz -} diff -r a3e929634247 -r 371673f39e46 module-usb-storage/receipt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/module-usb-storage/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -0,0 +1,48 @@ +# SliTaz package receipt. + +PACKAGE="module-usb-storage" +VERSION="2.6.14" +CATEGORY="base-system" +SHORT_DESC="Kernel module for the USB storage devices" +MAINTAINER="pascal.bellard@slitaz.org" +LICENSE="GPL2" +WEB_SITE="http://tiny.slitaz.org/" +WANTED="linux" + +# Rules to gen a SliTaz package suitable for Tazpkg. +genpkg_rules() +{ + local path + export src=$WOK/$WANTED/source/linux-$VERSION + export _pkg=$WOK/$WANTED/install + path=lib/modules/$(ls $_pkg/lib/modules)/kernel + mkdir -p $fs/$path + $src/slitaz/list_modules.sh drivers/usb/storage/usb-storage.ko | while read module; do + dir=$path/$(dirname $module) + [ -d $fs/$dir ] || mkdir -p $fs/$dir + cp -a $_pkg/$path/$module $fs/$dir + done +} + +# Post install/remove commands for Tazpkg. +post_install() +{ + echo ${PACKAGE#*-} >> $1/modules +} + +#scsi_mod.ko: +#parm=scsi_logging_level:a bit mask of logging levels +#parm=max_luns:last scsi LUN (should be between 1 and 2^32-1) +#parm=max_report_luns:REPORT LUNS maximum number of LUNS received (should be between 1 and 16384) +#parm=inq_timeout:Timeout (in seconds) waiting for devices to answer INQUIRY. Default is 5. Some non-compliant devices need more. +#parm=dev_flags:Given scsi_dev_flags=vendor:model:flags[,v:m:f] add black/white list entries for vendor and model with an integer value of flags to the scsi device info list +#parm=default_dev_flags:scsi default device flag integer value + +#usbcore.ko: +#parm=blinkenlights:true to cycle leds on hubs +#parm=old_scheme_first:start with the old device initialization scheme +#parm=use_both_schemes:try the other device initialization scheme if the first one fails +#parm=usbfs_snoop:true to log all usbfs traffic + +#usb-storage.ko: +#parm=delay_use:seconds to delay before using a new device diff -r a3e929634247 -r 371673f39e46 module-vfat/receipt --- a/module-vfat/receipt Thu Jul 18 13:24:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -# SliTaz package receipt. - -PACKAGE="module-vfat" -VERSION="2.6.37" -CATEGORY="base-system" -SHORT_DESC="Kernel module for the vfat filesystem" -MAINTAINER="pascal.bellard@slitaz.org" -LICENSE="GPL2" -WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" -CONFIG_FILES="/etc/filesystems" - -# Rules to gen a SliTaz package suitable for Tazpkg. -genpkg_rules() -{ - local path - path=lib/modules/$VERSION-slitaz/kernel - mkdir -p $fs/$path $fs/etc - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg - $src/slitaz/list_modules.sh fs/fat | while read module; do - dir=$path/$(dirname $module) - [ -d $fs/$dir ] || mkdir -p $fs/$dir - cp -a $_pkg/$path/$module $fs/$dir - done - touch $fs/etc/filesystems -} - -# Post install/remove commands for Tazpkg. -post_install() -{ - for i in vfat fat msdos ; do - grep -qs ^$i$ $1/etc/filesystems || \ - echo "$i" >> $1/etc/filesystems - done - chroot "$1/" depmod -a $VERSION-slitaz -} diff -r a3e929634247 -r 371673f39e46 module-xfs/receipt --- a/module-xfs/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/module-xfs/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -1,23 +1,23 @@ # SliTaz package receipt. PACKAGE="module-xfs" -VERSION="2.6.37" +VERSION="2.6.14" CATEGORY="base-system" SHORT_DESC="Kernel module for the xfs filesystem" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="GPL2" WEB_SITE="http://tiny.slitaz.org/" -WANTED="kernel-modular" +WANTED="linux" CONFIG_FILES="/etc/filesystems" # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { local path - path=lib/modules/$VERSION-slitaz/kernel + export src=$WOK/$WANTED/source/linux-$VERSION + export _pkg=$WOK/$WANTED/install + path=lib/modules/$(ls $_pkg/lib/modules)/kernel mkdir -p $fs/$path $fs/etc - export src=$WOK/$WANTED/linux-$VERSION - export _pkg=$src/_pkg $src/slitaz/list_modules.sh fs/${PACKAGE#*-} | while read module; do dir=$path/$(dirname $module) [ -d $fs/$dir ] || mkdir -p $fs/$dir @@ -29,7 +29,7 @@ # Post install/remove commands for Tazpkg. post_install() { + echo ${PACKAGE#*-} >> $1/modules grep -qs ^${PACKAGE#*-}$ $1/etc/filesystems || \ echo "${PACKAGE#*-}" >> $1/etc/filesystems - chroot "$1/" depmod -a $VERSION-slitaz } diff -r a3e929634247 -r 371673f39e46 ntp-config/receipt --- a/ntp-config/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/ntp-config/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -2,7 +2,7 @@ PACKAGE="ntp-config" VERSION="1.0" -CATEGORY="configuration" +CATEGORY="meta" SHORT_DESC="Network time protocol configuration" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="BSD" diff -r a3e929634247 -r 371673f39e46 p910nd/receipt --- a/p910nd/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/p910nd/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -17,16 +17,15 @@ # Rules to configure and make the package. compile_rules() { - cd $src make CC=uclibc-$TARGET-cc CFLAGS=-DLOCKFILE_DIR=\\\"/var/lock\\\" && - make DESTDIR=$PWD/_pkg install + make DESTDIR=$DESTDIR install } # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { mkdir -p $fs/usr $fs/etc/init.d $fs/dev - cp -a $_pkg/usr/sbin $fs/usr + cp -a $install/usr/sbin $fs/usr ln -s daemon $fs/etc/init.d/p910nd } diff -r a3e929634247 -r 371673f39e46 ppp-plugins-atm/receipt --- a/ppp-plugins-atm/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/ppp-plugins-atm/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -1,7 +1,7 @@ # SliTaz package receipt. PACKAGE="ppp-plugins-atm" -VERSION="2.4.5" +VERSION="2.4.7" CATEGORY="network" SHORT_DESC="ppp extras ADSL using pppoatm" MAINTAINER="pascal.bellard@slitaz.org" @@ -15,7 +15,7 @@ genpkg_rules() { mkdir -p $fs/usr/lib/pppd/$VERSION - cp -a $_pkg/usr/lib/pppd/$VERSION/pppoatm.so $fs/usr/lib/pppd/$VERSION + cp -a $install/usr/lib/pppd/$VERSION/pppoatm.so $fs/usr/lib/pppd/$VERSION } config_form() diff -r a3e929634247 -r 371673f39e46 ppp/receipt --- a/ppp/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/ppp/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -1,37 +1,36 @@ # SliTaz package receipt. PACKAGE="ppp" -VERSION="2.4.5" +VERSION="2.4.7" CATEGORY="network" SHORT_DESC="Point to Point Protocol (Internet with RTC modems)" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="BSD GPL" TARBALL="$PACKAGE-$VERSION.tar.gz" WEB_SITE="http://ppp.samba.org/" -WGET_URL="ftp://ftp.samba.org/pub/ppp/$TARBALL" +WGET_URL="https://github.com/paulusmack/ppp/archive/$TARBALL" [ -n "$TARGET" ] || TARGET="i486" -BUILD_DEPENDS="uclibc-cross-compiler-$TARGET" +BUILD_DEPENDS="wget uclibc-cross-compiler-$TARGET" DEPENDS="libdl libgcc_s" CONFIG_FILES="/etc/ppp/" # Rules to configure and make the package. compile_rules() { - cd $src ./configure --prefix=/usr --mandir=/usr/share/man \ - $CONFIGURE_ARGS && + $CONFIGURE_ARGS && make CC=uclibc-$TARGET-cc && - make DESTDIR=$PWD/_pkg/usr install + make DESTDIR=$DESTDIR/usr install } # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { mkdir -p $fs/etc/ppp/peers $fs/etc/ppp/scripts $fs/usr/sbin - cp -a $_pkg/usr/sbin/pppd $fs/usr/sbin + cp -a $install/usr/sbin/pppd $fs/usr/sbin cp -a $src/scripts/ip-up.local.add $fs/etc/ppp/ip-up cp -a $src/scripts/ip-down.local.add $fs/etc/ppp/ip-down - cp -a stuff/* $fs + cp -a $stuff/* $fs cp -a $src/scripts/ppp-on $fs/etc/ppp/scripts cp -a $src/scripts/ppp-on-dialer $fs/etc/ppp/scripts cp -a $src/scripts/ppp-off $fs/etc/ppp/scripts diff -r a3e929634247 -r 371673f39e46 pppdump/receipt --- a/pppdump/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/pppdump/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -1,7 +1,7 @@ # SliTaz package receipt. PACKAGE="pppdump" -VERSION="2.4.5" +VERSION="2.4.7" CATEGORY="network" SHORT_DESC="Point to Point Protocol debug tool" MAINTAINER="pascal.bellard@slitaz.org" @@ -14,6 +14,5 @@ genpkg_rules() { mkdir -p $fs/usr/sbin - cp -a $_pkg/usr/sbin/pppdump $fs/usr/sbin + cp -a $install/usr/sbin/pppdump $fs/usr/sbin } - diff -r a3e929634247 -r 371673f39e46 pppstats/receipt --- a/pppstats/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/pppstats/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -1,7 +1,7 @@ # SliTaz package receipt. PACKAGE="pppstats" -VERSION="2.4.5" +VERSION="2.4.7" CATEGORY="network" SHORT_DESC="Point to Point Protocol report tool" MAINTAINER="pascal.bellard@slitaz.org" @@ -14,5 +14,5 @@ genpkg_rules() { mkdir -p $fs/usr/sbin - cp -a $_pkg/usr/sbin/pppstats $fs/usr/sbin + cp -a $install/usr/sbin/pppstats $fs/usr/sbin } diff -r a3e929634247 -r 371673f39e46 rsync/receipt --- a/rsync/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/rsync/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -1,13 +1,13 @@ # SliTaz package receipt. PACKAGE="rsync" -VERSION="3.0.9" +VERSION="3.1.1" CATEGORY="network" SHORT_DESC="Utility that provides fast incremental." MAINTAINER="pankso@slitaz.org" LICENSE="GPL" [ -n "$TARGET" ] || TARGET="i486" -BUILD_DEPENDS="uclibc-cross-compiler-$TARGET" +BUILD_DEPENDS="uclibc-cross-compiler-$TARGET perl" DEPENDS="" TARBALL="$PACKAGE-$VERSION.tar.gz" WEB_SITE="http://rsync.samba.org/" @@ -17,7 +17,6 @@ # Rules to configure and make the package. compile_rules() { - cd $src sed -i 's/cross_compiling=no/cross_compiling=yes/' configure.sh ./configure CC=uclibc-$TARGET-cc --host=i486-pc-linux-gnu \ --prefix=/usr \ @@ -30,18 +29,18 @@ -e 's/HAVE_ICONV_OPEN ./HAVE_ICONV_OPEN 0/' config.h sed -i 's/-liconv//' Makefile make && - make DESTDIR=$PWD/_pkg install + make DESTDIR=$DESTDIR install } # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { mkdir -p $fs/usr - cp -a $_pkg/usr/bin $fs/usr + cp -a $install/usr/bin $fs/usr # Config file is /etc/rsyncd.conf. # User and passwd in /etc/rsyncd.secrets, syntax : user:passwd # - cp -a stuff/etc $fs + cp -a $stuff/etc $fs chown root.root $fs/etc/init.d/* chmod 0644 $fs/etc/rsyncd.conf diff -r a3e929634247 -r 371673f39e46 runcom/receipt --- a/runcom/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/runcom/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -19,14 +19,14 @@ sed '/linuxstart/!d;s/.*href="\([^"]*\)".*/\1/') wget $WEB_SITE/$tarball tar xzf $tarball - mkdir -p _pkg/usr/bin - uclibc-$TARGET-cc -o _pkg/usr/bin/runcom $(find . -name runcom.c) + mkdir -p $DESTDIR/usr/bin + uclibc-$TARGET-cc -o $DESTDIR/usr/bin/runcom $(find . -name runcom.c) } # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { - cp -a $_pkg/* $fs + cp -a $install/* $fs } # Post install command for Tazpkg. diff -r a3e929634247 -r 371673f39e46 tcc-arm/receipt --- a/tcc-arm/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/tcc-arm/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -14,8 +14,8 @@ genpkg_rules() { mkdir -p $fs/usr/bin - cp -a $_pkg/usr/bin/arm-tcc-vfp $fs/usr/bin - cp -a $_pkg/usr/bin/arm-tcc-fpa-ld $fs/usr/bin - cp -a $_pkg/usr/bin/arm-tcc-vfp-eabi $fs/usr/bin - cp -a $_pkg/usr/bin/arm-tcc-fpa $fs/usr/bin + cp -a $install/usr/bin/arm-tcc-vfp $fs/usr/bin + cp -a $install/usr/bin/arm-tcc-fpa-ld $fs/usr/bin + cp -a $install/usr/bin/arm-tcc-vfp-eabi $fs/usr/bin + cp -a $install/usr/bin/arm-tcc-fpa $fs/usr/bin } diff -r a3e929634247 -r 371673f39e46 tcc-c67/receipt --- a/tcc-c67/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/tcc-c67/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -14,5 +14,5 @@ genpkg_rules() { mkdir -p $fs/usr/bin - cp -a $_pkg/usr/bin/c67-tcc $fs/usr/bin + cp -a $install/usr/bin/c67-tcc $fs/usr/bin } diff -r a3e929634247 -r 371673f39e46 tcc-common/receipt --- a/tcc-common/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/tcc-common/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -13,5 +13,5 @@ genpkg_rules() { mkdir -p $fs/usr/lib - cp -a $_pkg/usr/lib/tcc $fs/usr/lib + cp -a $install/usr/lib/tcc $fs/usr/lib } diff -r a3e929634247 -r 371673f39e46 tcc-win32/receipt --- a/tcc-win32/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/tcc-win32/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -14,5 +14,5 @@ genpkg_rules() { mkdir -p $fs/usr/bin - cp -a $_pkg/usr/bin/i386-win32-tcc $fs/usr/bin + cp -a $install/usr/bin/i386-win32-tcc $fs/usr/bin } diff -r a3e929634247 -r 371673f39e46 tcc-x86_64/receipt --- a/tcc-x86_64/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/tcc-x86_64/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -14,5 +14,5 @@ genpkg_rules() { mkdir -p $fs/usr/bin - cp -a $_pkg/usr/bin/x86_64-tcc $fs/usr/bin + cp -a $install/usr/bin/x86_64-tcc $fs/usr/bin } diff -r a3e929634247 -r 371673f39e46 tcc/receipt --- a/tcc/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/tcc/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -17,22 +17,24 @@ # Rules to configure and make the package. compile_rules() { - cd $src if [ ! -f done.Makefile.u ]; then - patch < ../stuff/Makefile.u || return 1 + patch < $stuff/Makefile.u || return 1 touch done.Makefile.u fi sed -i 's/cp -u/cp/' tests/Makefile ./configure --prefix=/usr --enable-cross \ --cross-prefix=uclibc-$TARGET- && - make && make DESTDIR=$PWD/_pkg install + make && make DESTDIR=$DESTDIR install + [ -s $DESTDIR/usr/bin/i386-tcc -a ! -s $DESTDIR/usr/bin/x86_64-tcc ] && + mv $DESTDIR/usr/bin/tcc $DESTDIR/usr/bin/x86_64-tcc && + mv $DESTDIR/usr/bin/i386-tcc $DESTDIR/usr/bin/tcc } # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { mkdir -p $fs/usr/bin - cp -a $_pkg/usr/bin/tcc $fs/usr/bin + cp -a $install/usr/bin/tcc $fs/usr/bin ln -s tcc $fs/usr/bin/cc } diff -r a3e929634247 -r 371673f39e46 telnet-config/receipt --- a/telnet-config/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/telnet-config/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -2,7 +2,7 @@ PACKAGE="telnet-config" VERSION="1.0" -CATEGORY="configuration" +CATEGORY="meta" SHORT_DESC="Enable Telnet server" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="BSD" diff -r a3e929634247 -r 371673f39e46 udhcpd-config/receipt --- a/udhcpd-config/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/udhcpd-config/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -2,7 +2,7 @@ PACKAGE="udhcpd-config" VERSION="1.0" -CATEGORY="configuration" +CATEGORY="meta" SHORT_DESC="DHCP server configuration file" MAINTAINER="pascal.bellard@slitaz.org" LICENSE="BSD" diff -r a3e929634247 -r 371673f39e46 wiki/receipt --- a/wiki/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/wiki/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -13,7 +13,7 @@ # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { - cp -a stuff/. $fs + cp -a $stuff/. $fs } post_install() diff -r a3e929634247 -r 371673f39e46 zlib/receipt --- a/zlib/receipt Thu Jul 18 13:24:21 2013 +0000 +++ b/zlib/receipt Fri Oct 02 21:45:05 2015 +0200 @@ -15,7 +15,6 @@ # Rules to configure and make the package. compile_rules() { - cd $PACKAGE-$VERSION ./configure --shared --prefix=/usr \ --libdir=/usr/share/uclibc-cross-compiler-$TARGET/lib \ --includedir=/usr/share/uclibc-cross-compiler-$TARGET/include @@ -27,5 +26,5 @@ genpkg_rules() { mkdir -p $fs/usr/lib - cp -a $PACKAGE-$VERSION/libz.so* $fs/usr/lib + cp -a $src/libz.so* $fs/usr/lib }