Hi all,

Please find below a patch to add FreeBSD kernel selection in
base-installer, plus a few tests.

Note that it adds two more options in the test files, 
"kernel-7" and "kernel-8", for the FreeBSD kernels, similarly 
to the already existing "kernel-2.6" option.

As Linux kernels 2.4.x are gone and as we don't expect to see
different hardware support between versions 7.x and 8.x on FreeBSD,
the other alternative is to keep a single option called kernel.

What do you think? Any comments?

Aurelien


--- a/base-installer/kernel/kfreebsd-i386.sh
+++ b/base-installer/kernel/kfreebsd-i386.sh
@@ -0,0 +1,72 @@
+arch_get_kernel_flavour () {
+       VENDOR=`grep '^vendor_id' "$CPUINFO" | head -n1 | cut -d: -f2`
+       FAMILY=`grep '^cpu family' "$CPUINFO" | head -n1 | cut -d: -f2`
+       MODEL=`grep '^model[[:space:]]*:' "$CPUINFO" | head -n1 | cut -d: -f2`
+       NUMCPUS=`grep ^processor "$CPUINFO" | wc -l`
+
+       # Only offer smp if the system supports has more than one cpu
+       if test $NUMCPUS -gt "1" ; then
+           SMP="-smp"
+       fi
+
+       case "$VENDOR" in
+           " AuthenticAMD"*)
+               case "$FAMILY" in
+                   " 15"|" 16"|" 17")                  # k8
+                       echo 686$SMP
+                       ;;
+                   " 6")                               # k7
+                       case "$MODEL" in
+                           " 0"|" 1"|" 2"|" 3"|" 4"|" 5")
+                               # May not have SSE support
+                               echo 486 ;;
+                           *)  echo 686$SMP ;;
+                       esac
+                       ;;
+                   *)          echo 486 ;;
+               esac
+               ;;
+           " GenuineIntel")
+               case "$FAMILY" in
+                   " 6"|" 15") echo 686$SMP ;;
+                   *)          echo 486 ;;
+               esac
+               ;;
+           " CentaurHauls")
+               case "$FAMILY" in
+                   " 6")
+                       case "$MODEL" in
+                           " 9"|" 10") echo 686$SMP ;;
+                           *)          echo 486 ;;
+                       esac
+                       ;;
+                   *)
+                       echo 486 ;;
+               esac
+               ;;
+           *)
+               echo 486 ;;
+       esac
+       return 0
+}
+
+arch_check_usable_kernel () {
+       if echo "$1" | grep -Eq -- "-486(-.*)?$"; then return 0; fi
+       if [ "$2" = 486 ]; then return 1; fi
+       if echo "$1" | grep -Eq -- "-686(-.*)?$"; then return 0; fi
+       if [ "$2" = 686 ] || [ "$2" = 686-smp ]; then return 1; fi
+
+       # default to usable in case of strangeness
+       warning "Unknown kernel usability: $1 / $2"
+       return 0
+}
+
+arch_get_kernel () {
+       if [ "$1" = 686-smp ]; then
+               echo "kfreebsd-image-$KERNEL_MAJOR-686-smp"
+       fi
+       if [ "$1" = 686 ]; then
+               echo "kfreebsd-image-$KERNEL_MAJOR-686"
+       fi
+       echo "kfreebsd-image-$KERNEL_MAJOR-486"
+}
--- a/base-installer/kernel/tests/runtests
+++ b/base-installer/kernel/tests/runtests
@@ -23,7 +23,7 @@
 run_test () {
        TEST="$1"
 
-       unset SUBARCH CPUINFO FLAVOUR KERNEL_26 USABLE UNUSABLE \
+       unset SUBARCH CPUINFO FLAVOUR KERNEL_26 KERNEL_7 KERNEL_8 USABLE 
UNUSABLE \
                || true
        NUMCPUS=1
        MAJORS=2.6
@@ -51,6 +51,12 @@
                        kernel-2.6)
                                KERNEL_26="$value"
                                ;;
+                       kernel-7)
+                               KERNEL_7="$value"
+                               ;;
+                       kernel-8)
+                               KERNEL_8="$value"
+                               ;;
                        usable)
                                USABLE="$value"
                                ;;
@@ -66,7 +72,7 @@
        done < "$TEST"
 
        export ARCH SUBARCH CPUINFO NUMCPUS MACHINE
-       export MAJORS FLAVOUR KERNEL_26
+       export MAJORS FLAVOUR KERNEL_26 KERNEL_7 KERNEL_8
        export USABLE UNUSABLE
 
        TMP="$(mktemp -t base-installer-tests.XXXXXX)"
--- a/base-installer/kernel/tests/kfreebsd-amd64/k8.test
+++ b/base-installer/kernel/tests/kfreebsd-amd64/k8.test
@@ -0,0 +1,8 @@
+cpuinfo k8.cpuinfo
+majors 7
+flavour amd64
+kernel-7 \
+  kfreebsd-image-7-amd64
+usable \
+  kfreebsd-image-7-amd64 \
+  kfreebsd-image-7.2-amd64
--- a/base-installer/kernel/tests/kfreebsd-amd64/k8.cpuinfo
+++ b/base-installer/kernel/tests/kfreebsd-amd64/k8.cpuinfo
@@ -0,0 +1,9 @@
+processor      : 0
+vendor_id      : AuthenticAMD
+cpu family     : 6
+model          : 7
+model name     : AMD Sempron(tm) Processor 2600+
+stepping       : 2
+flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov 
pat pse36 b19 mmx fxsr xmm b26
+cpu MHz                : 1607.33
+bogomips       : 1607.33
--- a/base-installer/kernel/tests/kfreebsd-amd64/core2.test
+++ b/base-installer/kernel/tests/kfreebsd-amd64/core2.test
@@ -0,0 +1,8 @@
+cpuinfo core2.cpuinfo
+majors 7
+flavour amd64
+kernel-7 \
+  kfreebsd-image-7-amd64
+usable \
+  kfreebsd-image-7-amd64 \
+  kfreebsd-image-7.2-amd64
--- a/base-installer/kernel/tests/kfreebsd-amd64/core2.cpuinfo
+++ b/base-installer/kernel/tests/kfreebsd-amd64/core2.cpuinfo
@@ -0,0 +1,9 @@
+processor       : 0
+vendor_id       : GenuineIntel
+cpu family      : 6
+model           : 15
+model name      : Intel(R) Core(TM)2 Quad CPU    Q9650  @ 3.00GHz
+stepping        : 10
+flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca 
cmov pat pse36 b19 mmx fxsr xmm b26 b27
+cpu MHz         : 2579.69
+bogomips        : 2579.69
--- a/base-installer/kernel/tests/dotest
+++ b/base-installer/kernel/tests/dotest
@@ -29,6 +29,12 @@
                2.6)
                        WANT_KERNELS="$KERNEL_26"
                        ;;
+               7)
+                       WANT_KERNELS="$KERNEL_7"
+                       ;;
+               8)
+                       WANT_KERNELS="$KERNEL_8"
+                       ;;
        esac
        WANT_KERNELS="$(echo "$WANT_KERNELS" | tr '\n' ' ' | tr -s ' ' | sed 
's/ *$//')"
        WANT_KERNEL_STEM="${WANT_KERNELS%% *}"
--- a/base-installer/kernel/tests/kfreebsd-i386/k8.test
+++ b/base-installer/kernel/tests/kfreebsd-i386/k8.test
@@ -0,0 +1,13 @@
+cpuinfo k8.cpuinfo
+majors 7
+flavour 686
+kernel-7 \
+  kfreebsd-image-7-686 \
+  kfreebsd-image-7-486
+usable \
+  kfreebsd-image-7-486 \
+  kfreebsd-image-7-686 \
+  kfreebsd-image-7-686-smp \
+  kfreebsd-image-7.2-486 \
+  kfreebsd-image-7.2-686 \
+  kfreebsd-image-7.2-686-smp
--- a/base-installer/kernel/tests/kfreebsd-i386/k8.cpuinfo
+++ b/base-installer/kernel/tests/kfreebsd-i386/k8.cpuinfo
@@ -0,0 +1,9 @@
+processor      : 0
+vendor_id      : AuthenticAMD
+cpu family     : 6
+model          : 7
+model name     : AMD Sempron(tm) Processor 2600+
+stepping       : 2
+flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov 
pat pse36 b19 mmx fxsr xmm b26
+cpu MHz                : 1607.33
+bogomips       : 1607.33
--- a/base-installer/kernel/tests/kfreebsd-i386/core2.test
+++ b/base-installer/kernel/tests/kfreebsd-i386/core2.test
@@ -0,0 +1,13 @@
+cpuinfo core2.cpuinfo
+majors 7
+flavour 686
+kernel-7 \
+  kfreebsd-image-7-686 \
+  kfreebsd-image-7-486
+usable \
+  kfreebsd-image-7-486 \
+  kfreebsd-image-7-686 \
+  kfreebsd-image-7-686-smp \
+  kfreebsd-image-7.2-486 \
+  kfreebsd-image-7.2-686 \
+  kfreebsd-image-7.2-686-smp
--- a/base-installer/kernel/tests/kfreebsd-i386/core2.cpuinfo
+++ b/base-installer/kernel/tests/kfreebsd-i386/core2.cpuinfo
@@ -0,0 +1,9 @@
+processor       : 0
+vendor_id       : GenuineIntel
+cpu family      : 6
+model           : 15
+model name      : Intel(R) Core(TM)2 Quad CPU    Q9650  @ 3.00GHz
+stepping        : 10
+flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca 
cmov pat pse36 b19 mmx fxsr xmm b26 b27
+cpu MHz         : 2579.69
+bogomips        : 2579.69
--- a/base-installer/kernel/kfreebsd-amd64.sh
+++ b/base-installer/kernel/kfreebsd-amd64.sh
@@ -0,0 +1,18 @@
+arch_get_kernel_flavour () {
+       VENDOR=`grep '^vendor_id' "$CPUINFO" | head -n1 | cut -d: -f2`
+       case "$VENDOR" in
+           *)
+               echo amd64 ;;
+       esac
+       return 0
+}
+
+arch_check_usable_kernel () {
+       if echo "$1" | grep -Eq -- "-amd64(-.*)?$"; then return 0; fi
+
+       return 1
+}
+
+arch_get_kernel () {
+       echo "kfreebsd-image-$KERNEL_MAJOR-amd64"
+}



-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
[email protected]                 http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to