Estoy tratando de instalar controladores para una tarjeta inalámbrica rosewill RNX-N600UBE (chipset Ralink RT2870) en Kali Linux. Descargué los controladores de su sitio web y los descomprimí / descomprimí, pero ahora cuando trato de ejecutar el comando 'make' obtengo este error.
/home/fox/System/2011_0427_RT3572_Linux_STA_v2.5.0.0.DPO/os/linux/../../os/linux/rt_linux.c:1156:20: error: incompatible types when assigning to type ‘int’ from type ‘kuid_t’
/home/fox/System/2011_0427_RT3572_Linux_STA_v2.5.0.0.DPO/os/linux/../../os/linux/rt_linux.c:1157:20: error: incompatible types when assigning to type ‘int’ from type ‘kgid_t’
make[4]: *** [/home/fox/System/2011_0427_RT3572_Linux_STA_v2.5.0.0.DPO/os/linux/../../os/linux/rt_linux.o] Error 1
make[3]: *** [_module_/home/fox/System/2011_0427_RT3572_Linux_STA_v2.5.0.0.DPO/os/linux] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
Respuestas:
El problema es que uno de los encabezados / interfaces del kernel cambió en un kernel 3.x reciente. Cuando los valores UID / GID se denominaban originalmente enteros regulares, ahora son estructuras con un solo elemento. Cualquier código que se base en la definición anterior ahora no se compilará hasta que se actualice para que coincida con los nuevos encabezados del núcleo.
Actualmente estoy experimentando parcheando un error similar en virtualbox-guest-utils para mi instalación de Ubuntu; en teoría, localizar y reemplazar instancias
->i_uid =
con->i_uid.val =
o->i_gid =
con->i_gid.val =
los números de línea informados en el error debería solucionar el problema (pero no puedo garantizar que en este momento la compilación esté fallando en un error diferente, no relacionado para mí).Su mejor opción es contactar al autor original de su código para obtener una versión actualizada de la fuente que funcione con los núcleos más nuevos.
fuente
current_fsuid()
acurrent_fsuid().val
current_fsgid()
acurrent_fsgid().val
int
akuid_t
también parece hacer el truco.Encontré una solución a los errores de compilación en otro controlador en este sitio web: http://www.arnelborja.com/compiling-rt2870-wifi-driver-in-fedora/
a continuación se muestra el contenido del parche:
fuente
kuid_t
ykgid_t
se introdujeron. Para aquellos,k
debe ser eliminado, como enuid_t fsuid;
ygid_t fsgid;
make
solo informa los errores, pero de hecho son errores de su compilador (probablemente gcc):Básicamente, su código tiene errores o es inapropiado para su plataforma, pero
make
funciona correctamente.fuente
Esta solución funcionó para mí. El procedimiento que seguí fue:
Seguí los pasos para mi distribución (Debian Jessie) desde aquí .
Guardé el controlador para Linux del fabricante (que viene con el equipo en el CDROM) y lo descomprimí en una carpeta.
En la carpeta, escribí
make
(comoroot
) y recibí un error. Entonces, hice la modificación anterior, y funcionó.Escribí
make install
(asroot
), reinicié la computadora y se reconoció la interfaz inalámbrica. Lo configuré y funcionó. ;)Mi sistema es: Debian Jessie, kernel 3.16.0-4-amd64, usando gnome.
fuente