# ndiswrapper [Résolu]

## FDZ

Bonjour

Je viens d'installer gentoo en chroot à partir d'une session ubuntu. Le systéme boote correctement, mais je bute sur la configuration de réseau. Je suis connecté au réseau à travers une clé usb wifi qui m'amène à utiliser ndiswrapper. J'ai réussi sans trop de mal à installer ndiswrapper sur gentoo dans ma session chroot, mais quand je boote en gentoo, je ne parviens pas à me connecter via wlan0 (que j'ai pourtant configuré dans /etc/conf.d/net).

J'ai du reconfigurer le noyau avant de monter le module ndiswrapper, j'ai utilisé "modinfo ndiswrapper" pour avoir la confirmation de l'installation correcte du module, et 'ndiswrapper -l" me confirme que le pilote correct est bien installé. Où peut bien se cacher l'erreur ? (oui, je sais, entre la chaise et le clavier,  :Wink:  mais encore ?)

----------

## xaviermiller

Bonjour,

Il est très probable que le nom de ton interface réseau n'est pas wlan0 (règles de nommage débiles de udev).

Que donne "ifconfig" ?

----------

## FDZ

Voici la réponse de ifconfig, en configuration chroot sous ubuntu :

```
Ubuntu linux # ifconfig

eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        ether 00:1f:d0:95:88:27  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 0  (Local Loopback)

        RX packets 3353  bytes 273584 (267.1 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 3353  bytes 273584 (267.1 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.1.2  netmask 255.255.255.0  broadcast 192.168.1.255

        inet6 fe80::2b0:8cff:fe03:1f64  prefixlen 64  scopeid 0x20<link>

        ether 00:b0:8c:03:1f:64  txqueuelen 1000  (Ethernet)

        RX packets 172133  bytes 22317886 (21.2 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 253546  bytes 129675663 (123.6 MiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

```

Je vais de ce pas vérifier si  la réponse est la même en boot gentoo et je vais essayer de poster la réponse

[Edit] 

Et voilà la réponse sous gentoo seul

```
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 0  (Local Loopback)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

```

Sous gentoo, iwconfig ne connait pas wlan0

Pour info, copie de mon /etc/conf.d/net :

```
# This blank configuration will automatically use DHCP for any net.*

# scripts in /etc/init.d.  To create a more complete configuration,

# please review /usr/share/doc/openrc*/net.example* and save your configuration

# in /etc/conf.d/net (this file :]!).

modules=("dhcpcd")

modules=("iwconfig")

key_Mon_ESSID="[1] s:Mon_code key [1] enc open"

preferred_aps=( "Mon_ESSID" )

sleep_scan_wlan0="1"

sleep_associate_wlan0="25"

iface_wlan0=("dhcp")
```

Il me semble bien que j'avais créé un script "/etc/init.d/wlan0", je ne le retrouve plus. J'y retourne !

[/Edit]

----------

## xaviermiller

la réponse de Gentoo sera différente, à moins que tu n'aies désactivé la règle de nommage de udev.

----------

## xaviermiller

Vois ce sujet-ci pour contourner cette fonctionnalité.

----------

## FDZ

 *XavierMiller wrote:*   

> Vois ce sujet-ci pour contourner cette fonctionnalité.

 

Désolé, noob complet sous gentoo, pas compris.

Par contre, le fichier que j'avais créé sous /etc/init.d se nomme "net.wlan0" et voilà son contenu :

```
#!/sbin/runscript

# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>

# Released under the 2-clause BSD license.

MODULESDIR="${RC_LIBEXECDIR}/net"

MODULESLIST="${RC_SVCDIR}/nettree"

_config_vars="config routes"

[ -z "${IN_BACKGROUND}" ] && IN_BACKGROUND="NO"

description="Configures network interfaces."

# Handy var so we don't have to embed new lines everywhere for array splitting

__IFS="

"

depend()

{

   local IFACE=${RC_SVCNAME#*.}

   local IFVAR=$(shell_var "${IFACE}")

   need localmount

   if [ "$RC_UNAME" = Linux -a "$IFACE" != lo ]; then

      need sysfs

   fi

   after bootmisc

   keyword -jail -prefix -vserver

   case "${IFACE}" in

      lo|lo0) ;;

      *)

         after net.lo net.lo0 dbus

         provide net

         ;;

   esac

   if [ "$(command -v "depend_${IFVAR}")" = "depend_${IFVAR}" ]; then

      depend_${IFVAR}

   fi

   local dep= prov=

   for dep in need use before after provide keyword; do

      eval prov=\$rc_${dep}_${IFVAR}

      if [ -n "${prov}" ]; then

         ${dep} ${prov}

         ewarn "rc_${dep}_${IFVAR} is deprecated."

         ewarn "Please use rc_net_${IFVAR}_${dep} instead."

      fi

   done

}

# Support bash arrays - sigh

_array_helper()

{

   local _a=

   eval _a=\$$1

   _a=$(echo "${_a}" | sed -e 's:^[[:space:]]*::' -e 's:[[:space:]]*$::' -e '/^$/d' -e 's:[[:space:]]\{1,\}: :g')

   [ -n "${_a}" ] && printf "%s\n" "${_a}"

}

_get_array()

{

   local _a=

   if [ -n "${BASH}" ]; then

      case "$(declare -p "$1" 2>/dev/null)" in

         "declare -a "*)

            ewarn "You are using a bash array for $1."

            ewarn "This feature will be removed in the future."

            ewarn "Please see net.example for the correct format for $1."

            eval "set -- \"\${$1[@]}\""

            for _a; do

               printf "%s\n" "${_a}"

            done

            return 0

            ;;

      esac

   fi

   _array_helper $1

}

# Flatten bash arrays to simple strings

_flatten_array()

{

   if [ -n "${BASH}" ]; then

      case "$(declare -p "$1" 2>/dev/null)" in

         "declare -a "*)

            ewarn "You are using a bash array for $1."

            ewarn "This feature will be removed in the future."

            ewarn "Please see net.example for the correct format for $1."

            eval "set -- \"\${$1[@]}\""

            for x; do

               printf "'%s' " "$(printf "$x" | sed "s:':'\\\'':g")"

            done

            return 0

            ;;

      esac

   fi

   _array_helper $1

}

_wait_for_carrier()

{

   local timeout= efunc=einfon

   _has_carrier  && return 0

   eval timeout=\$carrier_timeout_${IFVAR}

   timeout=${timeout:-${carrier_timeout:-0}}

   # Incase users don't want this nice feature ...

   [ ${timeout} -le 0 ] && return 0

   yesno ${RC_PARALLEL} && efunc=einfo

   ${efunc} "Waiting for carrier (${timeout} seconds) "

   while [ ${timeout} -gt 0 ]; do

      sleep 1

      if _has_carrier; then

         [ "${efunc}" = "einfon" ] && echo

         eend 0

         return 0

      fi

      : $(( timeout -= 1 ))

      [ "${efunc}" = "einfon" ] && printf "."

   done

   [ "${efunc}" = "einfon" ] && echo

   eend 1

   return 1

}

_netmask2cidr()

{

   # Some shells cannot handle hex arithmetic, so we massage it slightly

   # Buggy shells include FreeBSD sh, dash and busybox.

   # bash and NetBSD sh don't need this.

   case $1 in

      0x*)

      local hex=${1#0x*} quad=

      while [ -n "${hex}" ]; do

         local lastbut2=${hex#??*}

         quad=${quad}${quad:+.}0x${hex%${lastbut2}*}

         hex=${lastbut2}

      done

      set -- ${quad}

      ;;

   esac

   local i= len=

   local IFS=.

   for i in $1; do

      while [ ${i} -ne 0 ]; do

         : $(( len += i % 2 ))

         : $(( i >>= 1 ))

      done

   done

   echo "${len}"

}

_configure_variables()

{

   local var= v= t=

   for var in ${_config_vars}; do

      local v=

      for t; do

         eval v=\$${var}_${t}

         if [ -n "${v}" ]; then

            eval ${var}_${IFVAR}=\$${var}_${t}

            continue 2

         fi

      done

   done

}

_which()

{

   local i OIFS

   # Empty

   [ -z "$1" ] && return

   # check paths

   OIFS="$IFS"

   IFS=:

   for i in $PATH ; do

      [ -x $i/$1 ] && echo $i/$1 && break

   done

   IFS=$OIFS

}

# Like _which, but also consider shell builtins, and multiple alternatives

_program_available()

{

   [ -z "$1" ] && return 0

   local x=

   for x; do

      case "${x}" in

         /*) [ -x "${x}" ] && break;;

         *) type "${x}" >/dev/null 2>&1 && break;;

      esac

      unset x

   done

   [ -n "${x}" ] && echo $x && return 0

   return 1

}

_show_address()

{

   einfo "received address $(_get_inet_address "${IFACE}")"

}

# Basically sorts our modules into order and saves the list

_gen_module_list()

{

   local x= f= force=$1

   if ! ${force} && [ -s "${MODULESLIST}" -a "${MODULESLIST}" -nt "${MODULESDIR}" ]; then

      local update=false

      for x in "${MODULESDIR}"/*.sh; do

         [ -e "${x}" ] || continue

         if [ "${x}" -nt "${MODULESLIST}" ]; then

            update=true

            break

         fi

      done

      ${update} || return 0

   fi

   einfo "Caching network module dependencies"

   # Run in a subshell to protect the main script

   (

   after() {

      eval ${MODULE}_after="\"\${${MODULE}_after}\${${MODULE}_after:+ }$*\""

   }

   before() {

      local mod=${MODULE}

      local MODULE=

      for MODULE; do

         after "${mod}"

      done

   }

   program() {

      if [ "$1" = "start" -o "$1" = "stop" ]; then

         local s="$1"

         shift

         eval ${MODULE}_program_${s}="\"\${${MODULE}_program_${s}}\${${MODULE}_program_${s}:+ }$*\""

      else

         eval ${MODULE}_program="\"\${${MODULE}_program}\${${MODULE}_program:+ }$*\""

      fi

   }

   provide() {

      eval ${MODULE}_provide="\"\${${MODULE}_provide}\${${MODULE}_provide:+ }$*\""

      local x

      for x in $*; do

         eval ${x}_providedby="\"\${${MODULE}_providedby}\${${MODULE}_providedby:+ }${MODULE}\""

      done

   }

   for MODULE in "${MODULESDIR}"/*.sh; do

      sh -n "${MODULE}" || continue

      . "${MODULE}" || continue

      MODULE=${MODULE#${MODULESDIR}/}

      MODULE=${MODULE%.sh}

      eval ${MODULE}_depend

      MODULES="${MODULES} ${MODULE}"

   done

   VISITED=

   SORTED=

   visit() {

      case " ${VISITED} " in

         *" $1 "*) return;;

      esac

      VISITED="${VISITED} $1"

      eval AFTER=\$${1}_after

      for MODULE in ${AFTER}; do

         eval PROVIDEDBY=\$${MODULE}_providedby

         if [ -n "${PROVIDEDBY}" ]; then

            for MODULE in ${PROVIDEDBY}; do

               visit "${MODULE}"

            done

         else

            visit "${MODULE}"

         fi

      done

      eval PROVIDE=\$${1}_provide

      for MODULE in ${PROVIDE}; do

         visit "${MODULE}"

      done

      eval PROVIDEDBY=\$${1}_providedby

      [ -z "${PROVIDEDBY}" ] && SORTED="${SORTED} $1"

   }

   for MODULE in ${MODULES}; do

      visit "${MODULE}"

   done

   printf "" > "${MODULESLIST}"

   i=0

   for MODULE in ${SORTED}; do

      eval PROGRAM=\$${MODULE}_program

      eval PROGRAM_START=\$${MODULE}_program_start

      eval PROGRAM_STOP=\$${MODULE}_program_stop

      eval PROVIDE=\$${MODULE}_provide

      echo "module_${i}='${MODULE}'" >> "${MODULESLIST}"

      echo "module_${i}_program='${PROGRAM}'" >> "${MODULESLIST}"

      echo "module_${i}_program_start='${PROGRAM_START}'" >> "${MODULESLIST}"

      echo "module_${i}_program_stop='${PROGRAM_STOP}'" >> "${MODULESLIST}"

      echo "module_${i}_provide='${PROVIDE}'" >> "${MODULESLIST}"

      : $(( i += 1 ))

   done

   echo "module_${i}=" >> "${MODULESLIST}"

   )

   return 0

}

_load_modules()

{

   local starting=$1 mymods=

   # Ensure our list is up to date

   _gen_module_list false

   if ! . "${MODULESLIST}"; then

      _gen_module_list true

      . "${MODULESLIST}"

   fi

   MODULES=

   if [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then

      eval mymods=\$modules_${IFVAR}

      [ -z "${mymods}" ] && mymods=${modules}

   fi

   local i=-1 x= mod= f= provides=

   while true; do

      : $(( i += 1 ))

      eval mod=\$module_${i}

      [ -z "${mod}" ] && break

      [ -e "${MODULESDIR}/${mod}.sh" ] || continue

      eval set -- \$module_${i}_program

      if [ -n "$1" ]; then

         if ! _program_available "$@" >/dev/null; then

            vewarn "Skipping module $mod due to missing program: $@"

            continue

         fi

      fi

      if ${starting}; then

         eval set -- \$module_${i}_program_start

      else

         eval set -- \$module_${i}_program_stop

      fi

      if [ -n "$1" ]; then

         if ! _program_available "$@" >/dev/null; then

            vewarn "Skipping module $mod due to missing program: $@"

            continue

         fi

      fi

      eval provides=\$module_${i}_provide

      if ${starting}; then

         case " ${mymods} " in

            *" !${mod} "*) continue;;

            *" !${provides} "*) [ -n "${provides}" ] && continue;;

         esac

      fi

      MODULES="${MODULES}${MODULES:+ }${mod}"

      # Now load and wrap our functions

      if ! . "${MODULESDIR}/${mod}.sh"; then

         eend 1 "${RC_SVCNAME}: error loading module \`${mod}'"

         exit 1

      fi

      [ -z "${provides}" ] && continue

      # Wrap our provides

      local f=

      for f in pre_start start post_start; do

         eval "${provides}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"

      done

      eval module_${mod}_provides="${provides}"

      eval module_${provides}_providedby="${mod}"

   done

   # Wrap our preferred modules

   for mod in ${mymods}; do

      case " ${MODULES} " in

         *" ${mod} "*)

         eval x=\$module_${mod}_provides

         [ -z "${x}" ] && continue

         for f in pre_start start post_start; do

            eval "${x}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"

         done

         eval module_${x}_providedby="${mod}"

         ;;

      esac

   done

   # Finally remove any duplicated provides from our list if we're starting

   # Otherwise reverse the list

   local LIST="${MODULES}" p=

   MODULES=

   if ${starting}; then

      for mod in ${LIST}; do

         eval x=\$module_${mod}_provides

         if [ -n "${x}" ]; then

            eval p=\$module_${x}_providedby

            [ "${mod}" != "${p}" ] && continue

         fi

         MODULES="${MODULES}${MODULES:+ }${mod}"

      done

   else

      for mod in ${LIST}; do

         MODULES="${mod}${MODULES:+ }${MODULES}"

      done

   fi

   veinfo "Loaded modules: ${MODULES}"

}

_load_config()

{

   local config="$(_get_array "config_${IFVAR}")"

   local fallback="$(_get_array fallback_${IFVAR})"

   config_index=0

   local IFS="$__IFS"

   set -- ${config}

   # We should support a space separated array for cidr configs

   # But only as long as they do not contain other parameters for the address

   if [ $# = 1 ]; then

      unset IFS

      set -- ${config}

      # Of course, we may have a single address added old style.

      # If the NEXT argument is a v4 or v6 address, it's the next config.

      # Otherwise, it's arguments to the first config...

      if [ "${2#*.*}" = "${2}" -a "${2#*:*}" = "${2}" ]; then

         # Not an IPv4/IPv6

         local IFS="$__IFS"

         set -- ${config}

      fi

   fi

   # Ensure that loopback has the correct address

   if [ "${IFACE}" = "lo" -o "${IFACE}" = "lo0" ]; then

      if [ "$1" != "null" ]; then

            config_0="127.0.0.1/8"

         config_index=1

      fi

   else

      if [ -z "$1" ]; then

         ewarn "No configuration specified; defaulting to DHCP"

         config_0="dhcp"

         config_index=1

      fi

   fi

   # We store our config in an array like vars

   # so modules can influence it

   for cmd; do

      eval config_${config_index}="'${cmd}'"

      : $(( config_index += 1 ))

   done

   # Terminate the list

   eval config_${config_index}=

   config_index=0

   for cmd in ${fallback}; do

      eval fallback_${config_index}="'${cmd}'"

      : $(( config_index += 1 ))

   done

   # Terminate the list

   eval fallback_${config_index}=

   # Don't set to zero, so any net modules don't have to do anything extra

   config_index=-1

}

# Support functions

_run_if()

{

   local cmd=$1 iface=$2 ifr=${IFACE} ifv=${IFVAR}

   # Ensure that we don't stamp on real values

   local IFACE= IFVAR=

   shift

   if [ -n "${iface}" ]; then

      IFACE="${iface}"

      [ "${iface}" != "${ifr}" ] && IFVAR=$(shell_var "${IFACE}")

   else

      IFACE=${ifr}

      IFVAR=${ifv}

   fi

   ${cmd}

}

interface_exists()

{

   _run_if _exists "$@"

}

interface_up()

{

   _run_if _up "$@"

}

interface_down()

{

   _run_if _down "$@"

}

start()

{

   local IFACE=${RC_SVCNAME#*.} oneworked=false fallback=false module=

   local IFVAR=$(shell_var "${IFACE}") cmd= our_metric=

   local metric=0 _up_before_preup

   eval _up_before_preup="\$up_before_preup_${IFVAR}"

   [ -z "${_up_before_preup}" ] && _up_before_preup=$up_before_preup

   einfo "Bringing up interface ${IFACE}"

   eindent

   if [ -z "${MODULES}" ]; then

      local MODULES=

      _load_modules true

   fi

   # We up the iface twice if we have a preup to ensure it's up if

   # available in preup and afterwards incase the user inadvertently

   # brings it down

   if [ "$(command -v preup)" = "preup" ]; then

      yesno "${_up_before_preup:-yes}" && _up 2>/dev/null

      ebegin "Running preup"

      eindent

      preup || return 1

      eoutdent

   fi

   _up 2>/dev/null

   for module in ${MODULES}; do

      if [ "$(command -v "${module}_pre_start")" = "${module}_pre_start" ]; then

         ${module}_pre_start || exit $?

      fi

   done

   if ! _exists; then

      eerror "ERROR: interface ${IFACE} does not exist"

      eerror "Ensure that you have loaded the correct kernel module for your hardware"

      return 1

   fi

   if ! _wait_for_carrier; then

      if service_started devd; then

         ewarn "no carrier, but devd will start us when we have one"

         mark_service_inactive "${RC_SVCNAME}"

      else

         eerror "no carrier"

      fi

      return 1

   fi

   local config= config_index=

   _load_config

   config_index=0

   eval our_metric=\$metric_${IFVAR}

   if [ -n "${our_metric}" ]; then

      metric=${our_metric}

   elif [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then

      : $(( metric += $(_ifindex) ))

   fi

   while true; do

      eval config=\$config_${config_index}

      [ -z "${config}" ] && break

      set -- ${config}

      if [ "$1" != "null" -a "$1" != "noop" ]; then

         ebegin "$1"

      fi

      eindent

      case "$1" in

         noop)

            if [ -n "$(_get_inet_address)" ]; then

               oneworked=true

               break

            fi

            ;;

         null) :;;

         [0-9]*|*:*) _add_address ${config};;

         *)

            if [ "$(command -v "${config}_start")" = "${config}_start" ]; then

               "${config}"_start

            else

               eerror "nothing provides \`${config}'"

            fi

            ;;

      esac

      if eend $?; then

         oneworked=true

      else

         eval config=\$fallback_${config_index}

         if [ -n "${config}" ]; then

            fallback=true

            eoutdent

            ewarn "Trying fallback configuration ${config}"

            eindent

            eval config_${config_index}=\$config

            unset fallback_${config_index}

            : $(( config_index -= 1 ))

         fi

      fi

      eoutdent

      : $(( config_index += 1 ))

   done

   if ! ${oneworked}; then

      if [ "$(command -v failup)" = "failup" ]; then

         ebegin "Running failup"

         eindent

         failup

         eoutdent

      fi

      return 1

   fi

   local hidefirstroute=false first=true routes=

   if ${fallback}; then

      routes="$(_get_array "fallback_routes_${IFVAR}")"

   fi

   if [ -z "${routes}" ]; then

      routes="$(_get_array "routes_${IFVAR}")"

   fi

   if [ "${IFACE}" = "lo" -o "${IFACE}" = "lo0" ]; then

      if [ "${config_0}" != "null" ]; then

         routes="127.0.0.0/8 via 127.0.0.1

${routes}"

         hidefirstroute=true

      fi

   fi

   local OIFS="${IFS}" SIFS="${IFS-y}"

   local IFS="$__IFS"

   for cmd in ${routes}; do

      unset IFS

      if ${first}; then

         first=false

         einfo "Adding routes"

      fi

      eindent

      ebegin ${cmd}

      # Work out if we're a host or a net if not told

      case ${cmd} in

         -net" "*|-host" "*);;

         *" "netmask" "*)                   cmd="-net ${cmd}";;

         *.*.*.*/32*)                       cmd="-host ${cmd}";;

         *.*.*.*/*|0.0.0.0|0.0.0.0" "*)     cmd="-net ${cmd}";;

         default|default" "*)               cmd="-net ${cmd}";;

         *)                                 cmd="-host ${cmd}";;

      esac

      if ${hidefirstroute}; then

         _add_route ${cmd} >/dev/null 2>&1

         hidefirstroute=false

      else

         _add_route ${cmd} >/dev/null

      fi

      eend $?

      eoutdent

   done

   if [ "${SIFS}" = "y" ]; then

      unset IFS

   else

      IFS="${OIFS}"

   fi

   for module in ${MODULES}; do

      if [ "$(command -v "${module}_post_start")" = "${module}_post_start" ]; then

         ${module}_post_start || exit $?

      fi

   done

   if [ "$(command -v postup)" = "postup" ]; then

      ebegin "Running postup"

      eindent

      postup

      eoutdent

   fi

   return 0

}

stop()

{

   local IFACE=${RC_SVCNAME#*.} module=

   local IFVAR=$(shell_var "${IFACE}") opts=

   einfo "Bringing down interface ${IFACE}"

   eindent

   if [ -z "${MODULES}" ]; then

      local MODULES=

      _load_modules false

   fi

   if [ "$(command -v predown)" = "predown" ]; then

      ebegin "Running predown"

      eindent

      predown || return 1

      eoutdent

   else

      if is_net_fs /; then

         eerror "root filesystem is network mounted -- can't stop ${IFACE}"

         return 1

      fi

   fi

   for module in ${MODULES}; do

      if [ "$(command -v "${module}_pre_stop")" = "${module}_pre_stop" ]; then

         ${module}_pre_stop || exit $?

      fi

   done

   for module in ${MODULES}; do

      if [ "$(command -v "${module}_stop")" = "${module}_stop" ]; then

         ${module}_stop

      fi

   done

   # Only delete addresses for interfaces that exist

   if _exists; then

      # PPP can manage it's own addresses when IN_BACKGROUND

      # Important in case "demand" set on the ppp link

      if ! (yesno ${IN_BACKGROUND} && is_ppp) ; then

         _delete_addresses "${IFACE}"

      fi

   fi

   for module in ${MODULES}; do

      if [ "$(command -v "${module}_post_stop")" = "${module}_post_stop" ]; then

         ${module}_post_stop

      fi

   done

   # If not in background, and not loopback then bring the interface down

   # unless overridden.

   if ! yesno ${IN_BACKGROUND} && \

   [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then

      eval module=\$ifdown_${IFVAR}

      module=${module:-${ifdown:-YES}}

      yesno ${module} && _down 2>/dev/null

   fi

   type resolvconf >/dev/null 2>&1 && resolvconf -d "${IFACE}" 2>/dev/null

   if [ "$(command -v "postdown")" = "postdown" ]; then

      ebegin "Running postdown"

      eindent

      postdown

      eoutdent

   fi

   return 0

}
```

(c'est un lien symbolique vers net.lo)

----------

## xaviermiller

Hello,

Le manuel ne semble pas très utile par rapport à udev (il mentionne toujours eth0 ou wlan0)...

Voici un lien vers le wiki, qui est un peu plus utile : http://wiki.gentoo.org/wiki/Udev/upgrade#Fixing_network_interfaces

----------

## FDZ

Je crois qu'on déplace le problème et qu'on s'éloigne de la solution.

- j'ai un PC qui se connecte au réseau via une clé USB dont le pilote est géré par ndiswrapper

- ndiswrapper est bien installé sous gentoo (dixit "modinfo ndiswrapper"), le pilote est bien détecté (dixit "ndiswrapper -l")

- wlan0 n'est pas actif. Si je dois utiliser une autre appellation que wlan0, peut m'en chaut, du moins que ça tourne !

- ifconfig ne connait que eth0. Peut-être faudrait-il désactiver eth0 au démarrage pour que wlan0 (ou tout autre nom que gentoo peut accepter) soit actif ?

J'avais prévu que la prochaine étape (après la configuration correcte du réseau) serait l'installation de la configuration graphique (CG NVidia, à priori ça risque de ne pas être simple). Peut-être serait-il bon de passer directement à cette étape et essayer d'installer le réseau avec un outil graphique (wicd par ex.)

----------

## xaviermiller

Tu as une interface nommée eth0 ? Alors en effet, le problème n'est pas lié à udev.

----------

## xaviermiller

Pour nous aider, pourrais-tu nous dire au moins quelle est cette carte réseau wifi ?

----------

## FDZ

Clé WIFI Advance, model WL-54USB

Les drivers que j'utilise sous gentoo sont les mêmes que sous ubuntu. Au fait, mes OS sont en x86-64.

----------

## xaviermiller

peux-tu nous donner le résultat de lsusb ?

----------

## CryoGen

et un "ifconfig -a" aussi.

----------

## FDZ

lsusb (en mode autonome):

```
Bus 001 Device 002: ID 1286:1fab Marvell Semiconductor, Inc. 88W8338 [Libertas] 802.11g

Bus 001 Device 003: ID 03f0:9711 Hewlett-Packard 

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
```

ifconfig -a (toujours mode autonome) 

```
enp0s15: flags=4098<BROADCAST,MULTICAST>  mtu 1500

        ether 00:1f:d0:95:88:27  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 0  (Local Loopback)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

sit0: flags=128<NOARP>  mtu 1480

        sit  txqueuelen 0  (IPv6-in-IPv4)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

```

ndiswrapper -l (autonome):

```
netmw226 : driver installed

   device (1286:1FAB) present
```

et enfin, toujours en mode autonome, "modinfo ndiswrapper":

```
filename:       /lib/modules/3.8.13-gentoo/misc/ndiswrapper.ko

license:        GPL

version:        1.58

description:    NDIS wrapper driver

author:         ndiswrapper team <ndiswrapper-general@lists.sourceforge.net>

srcversion:     4E702FD03ACE7E03040C2C1

depends:        

vermagic:       3.8.13-gentoo SMP mod_unload 

parm:           if_name:Network interface name or template (default: wlan%d) (charp)

parm:           proc_uid:The uid of the files created in /proc (default: 0). (int)

parm:           proc_gid:The gid of the files created in /proc (default: 0). (int)

parm:           debug:debug level (int)

parm:           hangcheck_interval:The interval, in seconds, for checking if driver is hung. (default: 0) (int)

parm:           utils_version:Compatible version of utils (read only: 1.9) (charp)
```

Apparemment, tout y est (ndiswrapper), mais le module (ndiswrapper.ko) semble ne pas être chargé

[Edit]

Bizarre : en mode "chroot" :

```
Ubuntu / # lsusb

unable to initialize libusb: -99

```

NB : je viens de m'installer une carte (hub ?) de 2 ports usb3 via pci-e, ceci explique peut-être celà

[/Edit]

----------

## FDZ

Je crois que je viens de faire un grand pas en avant. En compulsant les options de ndiswrapper, j'ai vu passer fugitivement le terme "/proc".

Tilt ! Eureka ! Gonflant, mais c'est bien mur !   :Razz:  ! J'ai installé ndiswrapper en mode chroot, seul moyen que j'avais pour avoir une connexion. Or, dans cette configuration, "/proc" est une partition ubuntu montée justement (entre autre) pour permettre l'accès au net ! Donc si j'installe ndiswrapper, la partie qui utilise "/proc" et/ou qui s'y installe ne s'installe pas dans gentoo !

J'ai donc isolé le tarball de ndiswrapper, l'ai décompressé puis, en mode "autonome", j'ai recompilé la bête ("make" puis "make install").

Cependant, "modprobe ndiswrapper" refuse de fonctionner en mode autonome (je viens de vérifier : en mode chroot ça marche!)

Au besoin, je désinstalle tout le bazar (ndiswrapper) et reprend depuis le début.

----------

## FDZ

Ça bute sur wlan0. J'ai modifié /etc/conf.d/net pour utiliser sit0, ça va un peu plus loin, mais ça bute sur "usr/bin/busybox"

----------

## FDZ

Impossible de charger ndiswrapper en module. "modprobe ndiswrapper" me renvoit : 

```
modprobe: ERROR: could not insert 'ndiswrapper': Exec format error
```

Serait-ce une option erronée dans la config du noyau ?

----------

## xaviermiller

Probablement.

Vérifie le format du module en question : est-il en ELF ? En 64 bits ?

```
modinfo ndiswrapper
```

Essaie d'activer tous les types d'exécutables dans la configuration du noyau (surtout 32 bits).

----------

## FDZ

modinfo : voir message 9

lsmod ne renvoie rien (= aucun module chargé ?)

A priori, ndiswrapper est en version "all", je comprend par là compatible 32 et 64 (je l'utilise sous ubuntu et debian avec une config 64 pour les 2, et ça tourne. Avant de passer en 64 bits pour les 2 OS, ndiswrapper tournait aussi en 32)

Par contre, je ne comprend pas "module en ELF" : comment savoir ?

Copie du modinfo ndiswrapper :

```

filename:       /lib/modules/3.8.13-gentoo/misc/ndiswrapper.ko 

license:        GPL 

version:        1.58 

description:    NDIS wrapper driver 

author:         ndiswrapper team <ndiswrapper-general@lists.sourceforge.net> 

srcversion:     4E702FD03ACE7E03040C2C1 

depends:        

vermagic:       3.8.13-gentoo SMP mod_unload 

parm:           if_name:Network interface name or template (default: wlan%d) (charp) 

parm:           proc_uid:The uid of the files created in /proc (default: 0). (int) 

parm:           proc_gid:The gid of the files created in /proc (default: 0). (int) 

parm:           debug:debug level (int) 

parm:           hangcheck_interval:The interval, in seconds, for checking if driver is hung. (default: 0) (int) 

parm:           utils_version:Compatible version of utils (read only: 1.9) (charp) 
```

mais lsmod ne détecte aucun module

NB : c'est dans les paramètres renvoyés par "modinfo ndiswrapper" que j'ai détecté la présence de "/proc" relatée dans un précédent post

J'ai depuis réinstallé ndiswrapper en mode autonome, puis tenté la recompilation du noyau (make + make install après make menuconfiig,+> rien de changé, essai avec genkernel => même résultat : aucun module chargé et apparemment aucun module chargeable (c'est ce qui me fait penser à une mauvaise configuration pour la compilation du noyau => quelle option pourrait bloquer l'utilisation de modules ?)

----------

## xaviermiller

Pourrais-tu regarder les traces kernel (dmes) après la tentative d'insertion du module ?

Il devrait y avoir des messages un peu plus explicites.

----------

## FDZ

J'ai d'abord recompilé le noyau afin de valider l'installation du driver "mouveau" pour ma CG NVidia, en module. Au cours du make, j'ai pu vérifier que les éléments concernés s'installaient bien en module (apparition du [M] dans les messages de compil)

Après make install et vérification de la bonne installation du nouveau noyau dans /boot, j'ai rebooté afin d'être sur d'être sous ce noyau. lsmod me dit toujours qu'aucun module n'est présent, et "modprobe ndiswrapper" me renvoie le même message d'erreur.

Les traces dmesg postérieures au "modprobe ndiswrapper" sont 

```
[   10.870361] ndiswrapper: version magic '3.8.13-gentoo SMP mod_unload modversions ' should be '3.8.13-gentoo SMP mod_unload '

[   10.889851] ndiswrapper: version magic '3.8.13-gentoo SMP mod_unload modversions ' should be '3.8.13-gentoo SMP mod_unload '

[   85.221811] ndiswrapper: version magic '3.8.13-gentoo SMP mod_unload modversions ' should be '3.8.13-gentoo SMP mod_unload '

[  582.385537] conf (2216) used greatest stack depth: 4256 bytes left

[  666.321912] mv (5172) used greatest stack depth: 4008 bytes left

[ 1121.123762] ndiswrapper: version magic '3.8.13-gentoo SMP mod_unload modversions ' should be '3.8.13-gentoo SMP mod_unload '
```

Bizarre : pourquoi 4 lignes identiques alors que je n'ai utilisé qu'une seule fois modprobe ?

Il semblerait que je doive d'abord désinstaller ndiswrapper, alors que justement je cherche à l'installer ??   :Confused: 

Question subsidiaire : faudrait il vider le fichier /var/log/dmesg ? (lignes 4 et 5 : "used greater stack depth")

D'autre part, je suis surpris que ce fichier /var/dmesg soit différent suivant que je suis en mode chroot ou en mode autonome, pourtant /var n'est pas un fichier monté pour chroot (du moins pas volontairement) [ les lignes citées sont bien en mode "autonome" ]

----------

## xaviermiller

Hello,

Pour éviter les ennuis, ne fais plus d'allers-retours entre Ubuntu et Gentoo, on ne s'y retrouve plus.

Comment as-tu installé/configuré ndiswrapper ? Via "emerge ndiswrapper" ?

Essaie de le réinstaller une fois que ton noyau Gentoo tourne.

----------

## xaviermiller

Sinon, as-tu essayé une alternative : le pilote "libertas" du noyau et linux-firmware ?

----------

## FDZ

Installation ndiswrapper : je l'ai installé d'abord avec "emerge ndiswrapper" (en mode chroot, forcément !)

Puis sous gentoo, j'ai isolé le terball et l'ai réinstallé par compilation classique (make puis make install)

Ensuite, je l'ai désinstallé (make uninstall) et réinstallé toujours sous gentoo (mode autonome) avec "emerge ndiswrapper" (le tarball étant dejà présent, la connexion n'est pas indispensable pour l'installation).

ndiswrapper est bien installé et fonctionnel : "ndiswrappper -l" me renvoie bien les données correctes de la clé (pilote win et adresse usb).

"modinfo" me confirme que le module "ndiswrapper.ko" a bien été créé mais lsmod m'informe que les modules ne sont pas rattachés au noyau.

J'avais déjà essayé les pilotes libertas sous ubuntu, ça s'est soldé par un échec ; mais c'était il y a longtemps et je vais voir s'il y a de l'espoir de ce coté là

Noyau : j'ai réinitialisé grub sous ubuntu, il a bien détecté la partition bootable gentoo et c'est ainsi que je me logue en gentoo "autonome" (= sans passer par un autre OS). Le noyau gentoo est donc opérationnel, mais modprobe ne fonctionnne pas (exec format error).

NB : j'ai configuré le noyau pour valider les options (en module) du driver "nouveau" pour ma CG NVidia, mais ces modules n'apparaissent pas dans lsmod.

----------

## FDZ

J'ai trouvé un site qui me propose un tarball en tant que pilote pour une carte usb homonyme à la mienne.

- problème 1 : je ne suis pas du tout sur que cette solution soit opérationnelle, je parle d'expérience, ayant déjà tenté cette approche sans succès

- problème 2 : il est fort probable que ce pilote soit installable en module : je ne vois pas pourquoi l'installation de ce module se passerait bien alors que je n'arrive pas à faire fonctionner modprobe avec ndiswrapper, il faudrait supposer que le dysfonctionnement de modprobe soit du à ndiswrapper, ce dont je doute fort (tant qu'à faire, je vais essayer d'avancer dans l'installation des modules graphiques)

----------

## xaviermiller

Hello,

Comment as-tu configuré et installé le noyau et les modules : à la main, en ayant bien fait make install et make modules_install ? ou via genkernel ?

Est-ce que tu as bien démarré le noyau que tu as recompilé ? (cf les messages concernant les versions de noyau pas tout à fait identiques) ?

----------

## FDZ

En effet, j'ai bien installlé le noyau (du moins la dernière fois) "à la main" avec "make" et "make install", mais j'avais laissé passer "make modules_install". Je viens de le relancer, ça installe (?) plein de trucs, mais à la sortie lsmod ne renvoie rien et modprobe ne fonctionne toujours pas. Je commence à envisager la réinstallation complète à partir de zero (je conserve les fichiers de compil de ndiswrappper, à l'abri dans ma partition home)

Je pense bien que je suis encore une victime du syndrome "RTFM". Pourtant j'avais bien compulsé ce manuel, mais parfois en diagonale.

Je ne passe toujours pas en "résolu", je reviendrais quand j'aurais réinstallé ce système.

Au fait, pendant le boot, j'ai un message d'erreur disant que le sysème n'arrive pas à installer ndiswrapper (notifié dans /etc/conf.d/modules)

----------

## xaviermiller

redémarre ta machine, ou du moins tente de recharger le module ndiswrapper.

et évite tant que faire se peut de compiler à la main  :Wink: 

----------

## FDZ

Bon;, j'ai reformaté ma partition /, réinstallé le système en suivant les indications du wiki, reconfiguré le noyau (après "emerge gentoo-source" en mode chroot) avec "genkernel all --menuconfig". J'arrive à booter en gentoo, et maintenant lsmod me renvoie toute une liste de modules (ça, c'est bon signe ...) ... mais .. impossible de compiler ndiswrapper ! Si je tente un "emerge net-wireless/ndiswrapper" je reçois un message d'erreur 

```
* ERROR: net-wireless/ndiswrapper-1.58 failed (compile phase):

 *   emake failed

 * 

 * If you need support, post the output of `emerge --info '=net-wireless/ndiswrapper-1.58'`,

 * the complete build log and the output of `emerge -pqv '=net-wireless/ndiswrapper-1.58'`.

 * The complete build log is located at '/var/tmp/portage/net-wireless/ndiswrapper-1.58/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/net-wireless/ndiswrapper-1.58/temp/environment'.

 * Working directory: '/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/utils'

 * S: '/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58'

```

La compilation directe de ndiswrapper renvoie : 

```
make -C utils

make[1]: Entering directory `/home/compilation/ndiswrapper-1.58/utils'

make[1]: Nothing to be done for `all'.

make[1]: Leaving directory `/home/compilation/ndiswrapper-1.58/utils'

make -C driver

make[1]: Entering directory `/home/compilation/ndiswrapper-1.58/driver'

Makefile:23: *** Kernel build tree not found - please set KBUILD to configured kernel.  Stop.

make[1]: Leaving directory `/home/compilation/ndiswrapper-1.58/driver'

make: *** [driver] Error 2

```

 Je confirme que j'ai bien décompressé le tarball fourni par source forge dans le répertoire /home/compilation. Après, je cale

----------

## xaviermiller

que donne

```
eselect kernel list
```

 ?

Et je ne comprends en rien ce que tu dis par rapport au tarball et ton homedir ! Normalement, emerge récupère lui-même le tarball dans /usr/portage/distiles et compile le tout dans /var/tmp/portage

----------

## FDZ

Devant l'impossibilité d'installer ndiswrapper via emerge et les problèmes dus au fait que je ne peux utiliser emerge QUE en mode chroot, j'ai téléchargé ndiswrapper chez SourceForge et je l'ai décompressé dans mon répertoire /home/compilation dans le but de l'installer manuellement, mais cette option ne fonctionne pas non plus.

Retour de eselect kernel list 

```
Available kernel symlink targets:

  [1]   linux-3.10.7-gentoo *

```

Afin d'avancer dans la compilation manuelle, j'ai exporté KBUILD vers la valeur cherchée mais la compil n'a pas abouti non plus.

----------

## xaviermiller

EDIT: peux-tu remonter l'erreur de "emerge ndiswrapper", bien au-dessus de ce que tu as remonté ? Merci d'avance !

----------

## FDZ

Voici le retour complet de "emerge net-wireless/ndiswrapper"

```
(chroot) Ubuntu / # emerge net-wireless/ndiswrapper

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

 * IMPORTANT: 5 news items need reading for repository 'gentoo'.

 * Use eselect news to read news items.

Calculating dependencies... done!

>>> Verifying ebuild manifests

>>> Running pre-merge checks for net-wireless/ndiswrapper-1.58

[net-wireless/ndiswrapper-1.58] bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

[net-wireless/ndiswrapper-1.58] bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

 * Determining the location of the kernel source code

 * Found kernel source directory:

 *     /usr/src/linux

 * Found kernel object directory:

 *     /lib/modules/3.10.7-gentoo/build

 * Found sources for kernel version:

 *     3.10.7-gentoo

 * Checking for suitable kernel configuration options...                 [ ok ]

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

[net-wireless/ndiswrapper-1.58] bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

>>> Emerging (1 of 1) net-wireless/ndiswrapper-1.58

[net-wireless/ndiswrapper-1.58] bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

 * ndiswrapper-1.58.tar.gz SHA256 SHA512 WHIRLPOOL size ;-) ...          [ ok ]

[net-wireless/ndiswrapper-1.58] bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

 * Determining the location of the kernel source code

 * Found kernel source directory:

 *     /usr/src/linux

 * Found kernel object directory:

 *     /lib/modules/3.10.7-gentoo/build

 * Found sources for kernel version:

 *     3.10.7-gentoo

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/var/tmp/portage/net-wireless/ndiswrapper-1.58/temp/environment: line 76: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

>>> Unpacking source...

>>> Unpacking ndiswrapper-1.58.tar.gz to /var/tmp/portage/net-wireless/ndiswrapper-1.58/work

/usr/lib64/portage/bin/phase-helpers.sh: line 296: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/usr/lib64/portage/bin/phase-helpers.sh: line 299: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

>>> Source unpacked in /var/tmp/portage/net-wireless/ndiswrapper-1.58/work

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/var/tmp/portage/net-wireless/ndiswrapper-1.58/temp/environment: line 76: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

>>> Preparing source in /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58 ...

 * Applying ndiswrapper-1.56-cflags.patch ...                            [ ok ]

 * Applying ndiswrapper-1.58-3.9.patch ...                               [ ok ]

>>> Source prepared.

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/var/tmp/portage/net-wireless/ndiswrapper-1.58/temp/environment: line 76: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

>>> Configuring source in /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58 ...

>>> Source configured.

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/var/tmp/portage/net-wireless/ndiswrapper-1.58/temp/environment: line 76: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

>>> Compiling source in /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58 ...

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

make CC=x86_64-pc-linux-gnu-gcc 

x86_64-pc-linux-gnu-gcc -O2 -pipe -Wall -I../driver -Wl,-O1 -Wl,--as-needed -o loadndisdriver loadndisdriver.c

 * Preparing ndiswrapper module

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

make HOSTCC=x86_64-pc-linux-gnu-gcc CROSS_COMPILE=x86_64-pc-linux-gnu- 'LDFLAGS=-m elf_x86_64' KSRC=/usr/src/linux KVERS=3.10.7-gentoo KBUILD=/lib/modules/3.10.7-gentoo/build DISABLE_USB=1 all 

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

make -C /lib/modules/3.10.7-gentoo/build M=/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

make[1]: Entering directory `/usr/src/linux-3.10.7-gentoo'

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

  LD      /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/built-in.o

  MKEXPORT /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/crt_exports.h

  MKEXPORT /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/hal_exports.h

  MKEXPORT /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/ndis_exports.h

  MKEXPORT /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/ntoskernel_exports.h

  MKEXPORT /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/ntoskernel_io_exports.h

  MKEXPORT /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/rtl_exports.h

  MKSTUBS /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/win2lin_stubs.h

  CC [M]  /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/crt.o

  CC [M]  /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/hal.o

  CC [M]  /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/iw_ndis.o

  CC [M]  /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/loader.o

  CC [M]  /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/ndis.o

  CC [M]  /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/ntoskernel.o

  CC [M]  /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/ntoskernel_io.o

  CC [M]  /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/pe_linker.o

  CC [M]  /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/pnp.o

  CC [M]  /var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.o

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c: In function 'wrap_procfs_add_ndis_device':

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:391:3: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:399:19: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:400:19: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:402:2: error: implicit declaration of function 'create_proc_entry' [-Werror=implicit-function-declaration]

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:402:15: warning: assignment makes pointer from integer without a cast [enabled by default]

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:408:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:409:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:410:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:411:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:414:15: warning: assignment makes pointer from integer without a cast [enabled by default]

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:420:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:421:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:422:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:423:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:426:15: warning: assignment makes pointer from integer without a cast [enabled by default]

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:432:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:433:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:434:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:435:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:438:15: warning: assignment makes pointer from integer without a cast [enabled by default]

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:445:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:446:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:447:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:448:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:449:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:460:37: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c: In function 'wrap_procfs_remove_ndis_device':

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:476:33: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c: In function 'wrap_procfs_init':

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:536:19: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:537:19: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:539:15: warning: assignment makes pointer from integer without a cast [enabled by default]

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:545:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:546:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:547:15: error: dereferencing pointer to incomplete type

/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.c:548:15: error: dereferencing pointer to incomplete type

cc1: some warnings being treated as errors

make[2]: *** [/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver/proc.o] Error 1

make[1]: *** [_module_/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver] Error 2

make[1]: Leaving directory `/usr/src/linux-3.10.7-gentoo'

make: *** [modules] Error 2

 * ERROR: net-wireless/ndiswrapper-1.58 failed (compile phase):

 *   emake failed

 * 

 * If you need support, post the output of `emerge --info '=net-wireless/ndiswrapper-1.58'`,

 * the complete build log and the output of `emerge -pqv '=net-wireless/ndiswrapper-1.58'`.

 * The complete build log is located at '/var/tmp/portage/net-wireless/ndiswrapper-1.58/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/net-wireless/ndiswrapper-1.58/temp/environment'.

 * Working directory: '/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver'

 * S: '/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58'

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/var/tmp/portage/net-wireless/ndiswrapper-1.58/temp/environment: line 76: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

/bin/sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

>>> Failed to emerge net-wireless/ndiswrapper-1.58, Log file:

>>>  '/var/tmp/portage/net-wireless/ndiswrapper-1.58/temp/build.log'

 * Messages for package net-wireless/ndiswrapper-1.58:

 * ERROR: net-wireless/ndiswrapper-1.58 failed (compile phase):

 *   emake failed

 * 

 * If you need support, post the output of `emerge --info '=net-wireless/ndiswrapper-1.58'`,

 * the complete build log and the output of `emerge -pqv '=net-wireless/ndiswrapper-1.58'`.

 * The complete build log is located at '/var/tmp/portage/net-wireless/ndiswrapper-1.58/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/net-wireless/ndiswrapper-1.58/temp/environment'.

 * Working directory: '/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58/driver'

 * S: '/var/tmp/portage/net-wireless/ndiswrapper-1.58/work/ndiswrapper-1.58'

```

Les warnings concernant fr_FR.UTF8 sont à priori sans conséquence sur l'opération.

L'erreur se produit (si je lis bien ce message) pendant la phase de compilation.

Il pourrait y avoir un fichier de config à rectifier, mais lequel et où ?

NB : le tarball ndiswrapper-1.58.tar.gz a bien été enregistré dans /usr/portage/distfiles

----------

## xaviermiller

Pour utf-8, vérifie ton fichier /etc/locale.gen et lance la commande localegen pour générer ce qu'il faut.

Concernant l'erreur ndiswrapper, bug 475888 : évite la version 3.10 du kernel pour le moment.

----------

## FDZ

Les problèmes de warning concernant ne me gènent pas : ils n'apparaissent qu'en mode chroot.

J'ai downgradé mon noyau en 3.9.9-hardened, emerge semble aller au bout mais le module "ndiswrapper.ko" n'est pas créé ! Jai eu déjà un cas similaire sous ubuntu : c'était un bug de la vesion de ndiswrapper, qui fut corrigé dans la version suivante. Dans le cas présent, la version utilisée est la même que sous ubuntu (qui fonctionne). Si je lance "ndiswrapper -v", j'ai un messagfe d'erreur :

```
modinfo: ERROR: Module alias ndiswrapper not found.

module version is too old!

utils version: '1.9', utils version needed by module: '0'

module details:

sh: warning: setlocale: LC_ALL: cannot change locale (fr_FR.UTF-8)

modinfo: ERROR: Module alias ndiswrapper not found.

You may need to upgrade driver and/or utils to latest versions available at

http://ndiswrapper.sourceforge.net

```

La version de ndiswrapper est la 1.58, autant pour emerge que pour sourceforge.

Je pense que le "downgrading" a créé des dysfonctionnements.

Quelle version du noyau serait la plus à même de fonctionner correctement ?

Puis-je avoir des précisions sur la façon de l'installer ?

Merci de votre patience.

----------

## xaviermiller

Pourrais-tu arrêter de travailler en "mode chroot", ou du moins l'appliquer correctement ("env-update && source /etc/profile") ?

La résolution du problème est trop confuse à cause de mélange de plusieurs paramères.

----------

## FDZ

Je suis passé en kernel 3.9.11, j'ai seulement du passer de wlan0 à enp0s4f1u1, et je peux "emerger" sans passer par chroot !

Il est temps maintenant de s'attaquer au passage en graphique.

Je considère donc ce problème comme résolu, et vous remercie encore pour votre patience.

----------

## xaviermiller

Parfait !

----------

