Bitácora de EleKtR0

English - Italiano - Deutsch - Français - Português - русский

10 de noviembre de 2014

Instalando adaptador Wifi MT7601U en Raspbian

Si has comprado un adaptador Wifi USB con chipset MT7601U, identificado como 148f:7601 al ejecutar lsusb, tienes que compilar el driver del fabricante si quieres hacerlo funcionar en Raspbian. La última versión del driver está en este enlace de la web del fabricante. Al compilar el driver probablemente te muestre un error al compilar el fichero rt_linux.o
/usr/src/linux-headers-3.12-1-common/scripts/Makefile.build:308: recipe for target '/root/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/../../os/linux/rt_linux.o' failed
make[4]: *** [/root/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/../../os/linux/rt_linux.o] Error 1
/usr/src/linux-headers-3.12-1-common/Makefile:1245: recipe for target '_module_/root/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux' failed
make[3]: *** [_module_/root/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux] Error 2
Makefile:130: recipe for target 'sub-make' failed
make[2]: *** [sub-make] Error 2
Makefile:8: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.12-1-rpi'
Makefile:401: recipe for target 'LINUX' failed
make: *** [LINUX] Error 2

Según he encontrado en los foros de Ubuntu, el problema se soluciona cambiando en el fichero include/os/rt_linux.h del driver el tipo de dato de dos campos en la estructura _OS_FS_INFO_. Esta estructura está sobre la línea 280 del fichero include/os/rt_linux.h
typedef struct _OS_FS_INFO_
{
        int                             fsuid;
        int                             fsgid;
        mm_segment_t    fs;
} OS_FS_INFO;
Hay que cambiar el tipo de dato int por los que indico más abajo, guardar los cambios y ejecutar lo siguiente para recompilar: make clean && make && make install
typedef struct _OS_FS_INFO_
{
        kuid_t                             fsuid;
        kgid_t                             fsgid;
        mm_segment_t    fs;
} OS_FS_INFO;
El parche completo sería el siguiente:
--- include/os/rt_linux.h 2013-09-12 13:27:14.000000000 +0800
+++ include/os/rt_linux.h.patched 2014-03-23 11:45:03.907628847 +0800
@@ -279,8 +279,8 @@ typedef struct file* RTMP_OS_FD;
 
 typedef struct _OS_FS_INFO_
 {
- int    fsuid;
- int    fsgid;
+ kuid_t    fsuid;
+ kgid_t    fsgid;
  mm_segment_t fs;
 } OS_FS_INFO;
 
Fuentes: Can't compile driver for TP link WN727n v4 USB wireless adapter
Compiling MT7601U/RT2870 WiFi Driver in Fedora

Etiquetas: , , ,

6 de octubre de 2014

Sistemas operativos libres para Raspberry Pi

Para los que quieren trastear con nuevos sistemas en su Raspberry Pi y ya tienen muy vistas las distribuciones de Linux: FreeBSD y NetBSD

Hay intención de portar Illumos (un derivado de OpenSolaris) pero todavía está muy verde el proyecto.

Etiquetas: , , ,

3 de octubre de 2014

Montando sistemas de ficheros UFS/UFS2 en Linux

El sistema de ficheros UFS es usado por todos los sistemas operativos derivados de BSD Unix, incluyendo FreeBSD, NetBSD, OpenBSD, Solaris, Mac OS X, etc. La mayoría ya usan la versión más moderna UFS2 pero en Linux se monta de la misma forma aunque indicando el tipo de sistema UFS como una opción de montaje.

Concretamente, al conectar un dispositivo con un sistema de ficheros UFS2 de FreeBSD 10 el propio kernel Linux me ha generado este log que indica la forma de montarlo:

mount -t ufs -o ufstype=sun|sunx86|44bsd|ufs2|5xbsd|old|hp|nextstep|nextstep-cd|openstep ...

Con el siguiente comando he podido montarlo sin problemas, aunque si el sistema de ficheros no se ha desmontado correctamente sería mejor comprobar que no tiene errores con el comando fsck.ufs que viene en el paquete ufsutils de algunas distribuciones como Debian o Ubuntu (en OpenSuse no lo he encontrado):

mount -t ufs -o ufstype=ufs2 /dev/sdb2 /mnt

La partición es /dev/sdb2 porque se trata de una tarjeta de memoria donde he instalado FreeBSD para Raspberry Pi :-)

Etiquetas: , ,