Modulo wl1837: puesta en marcha
El modulo R078 (WL1837) de TDK contiene un componente Wi-Fi por puerto SDIO, y un componente Bluetooth conectado por UART. Cada parte ha de ser configurada por separado, y tiene metodos distintos de configuracion. En este documento se explica la configuracion minima, y se enlaza a documentos que permiten otras configuraciones.
Contents
Modulo Wi-Fi:
Para configuarlo se necesita - Un linux, sea instalado o virtualizado, con capacidad de cross-compiler (usa esta pagina con arm-linux-gnueabihf- para instalar lo necesario)
- Fuentes del Kernel 3.8.18 (de nuestro github, preguntar a Pedro o Arturo)
- Backports del 3.17 (programa que genera los modulos necesarios para nuestro kernel, en el NAS)
- Fuentes de texas instruments, que se consiguen con un script Aqui
- Comunicacion UART o posibilidad de usar monitor y teclado en el sistema de destino.
Paso 1: variables globales
Abre un terminal en linux. necesitamos establecer varias variables globales antes de empezar. Escribe estas lineas, modificando conforme sea necesario.
export CCPREFIX=/usr/bin/arm-linux-gnueabihf- export KERNEL_SRC=/path/hasta/las/fuentes/del/kernel export ARCH=arm export CROSS_COMPILE=${CCPREFIX} export BACK_PORTS=/path/hasta/las/fuentes/del/backports export KLIB_BUILD=${KERNEL_SRC} export KLIB=/path/hasta/el/directorio/de/los/modulos/del/kernel
Paso 2: editar .config
Has de compilar el kernel, pero sin incluir los modulos que controlan el wifi ni el bt. Edita el archivo .config, y cambia estas lineas:
CONFIG_WL_TI=y CONFIG_WL18XX=n CONFIG_WLCORE=n CONFIG_WLCORE_SDIO=n CONFIG_WL12XX_PLATFORM_DATA=y
Paso 3: compilar kernel
Compila el Kernel y los modulos, haciendo:
cd $KERNEL_SRC make oldconfig make -j4
Paso 4: compilar backports
Compila el backports, haciendo:
cd $BACK_PORTS make mrproper make defconfig-wifi make oldconfig make -j4 make install INSTALL_MOD_PATH=/path/a/los/modulos
Este paso intentará (sin exito) hacer depmod en tu propio sistema (instalarte los modulos). No hagas caso a este error.
Paso 5: instalar modulos
Instala los modulos en el filesystem de destino:
cp -r $KLIB/lib/modules/nombre de distribucion/updates /media/$USER/particion sistema/lib/modules/nombre distribucion/wireless_backports cp $KERNEL_SRC/arch/arm/boot/zImage /media/$USER/BOOT/zImage cd $KERNEL_SRC make modules_install INSTALL_MOD_PATH=/media/$USER/trusty && sync
Paso 6: sobreescribir
Sobreescribe los modulos del kernel con los generados por el backports. Has de copiar y combinar las carpetas compat, drivers, y net en la carpeta de /lib/modules/nombre distribucion/kernel/ del sistema de destino.
Paso 7: firmware
Descarga los script de texas instruments siguiendo sus instrucciones hasta el punto del comando
./build_wl18xx.sh init
Despues utiliza estos comandos:
./build_wl18xx.sh firmware ./build_wl18xx.sh utils ./build_wl18xx.sh bt-firmware
Comprueba los archivos generados. Han de estar en la carpeta fs , o en la carpeta outputs, comprimido. Has de copiar estos archivos en las carpetas correspondientes en el sistema de destino.
Paso 8: configuracion por defecto
Busca en los scripts de texas la carpeta que contiene el modulo wlconf. En esa carpeta está el archivo wl18xx-conf-default.bin . Copialo en /lib/firmware/ti-connectivity/ del sistema de destino.
Elimina en /lib/firmware/ti-connectivity/ del sistema de destino, el archivo wl18xx-conf.bin
En este paso, la carpeta de /lib/firmware/ti-connectivity/ ha de contener los archivos wl18xx-conf-default.bin y wl18xx-fw-4.bin.
Paso 9: arranque del sistema
Arranca el sistema de destino con el nuevo kernel. Si algo sale mal en el arranque, tendras que rehacerlo. Habla con Arturo o Pedro si pasa eso.
Una vez arrancado, y en el simbolo de sistema:
depmod -a lsmod
Aqui tendras una lista de modulos instalados. Si la lista no esta vacia, esta todo correcto. Ahora es momento de encender el modulo Wi-Fi. Averigua el numero de GPIO de la linea Wlan_enable del sistema del destino, y cambialo en los siguientes comandos:
echo "135" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio135/direction echo "1" > /sys/class/gpio/gpio135/value
Te tiene que dar un mensaje de que no ha encontrado el archivo .bin correcto. Si no te da mas mensajes, es que estamos en el buen camino. Comprueba que se ha cargado el modulo wl18xx haciendo lsmod.
Paso 10: buscar redes
Ejecuta el comando
ifconfig
Si todo ha ido bien, tendras un dispositivo wlan0 u otro numero. Ejecuta
iwlist wlan0 scan
te saldra una lista de las redes disponibles. A partir de aqui, busca en google metodos de conexión a wi-fi (wpa_supplicant es el mas comun, usa ese si no sabes lo que haces), o si tienes un sistema con escritorio y sistema grafico funcionando, utiliza las aplicaciones que te proporcione.
Bluetooth:
Paso 1
Descarga el binario necesario desde el git de texas instruments aqui
Copialo en /lib/firmware del sistema de destino
Paso 2
arranca el sistema, y carga el modulo hci_uart. prueba primero con
modprobe hci_uart lsmod
Si no funciona, prueba con
insmod /lib/modules/nombre compilacion/kernel/drivers/bluetooth/hci_uart.ko lsmod
Paso 3
Arranca el bluetooth. Averigua el numero de GPIO de BT_Enable en tu sistema, y cambialo en los comandos
echo "128" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio128/direction echo "1" > /sys/class/gpio/gpio128/value
Paso 4
Averigua el numero de UART del bluetooth en tu sistema (suele ser /dev/ttySAC2 ). Ejecuta el comando:
hciattach -s 115200 /dev/ttySAC2 texas
Te dara mensajes de que ha encontrado un chip de texas instruments, cambiara la velocidad de conexion, y si todo sale ok, dirá "Device setup complete". Comprueba que es asi ejecutando
hciconfig.
Paso 5
Ejecuta
hcitool <nombre del dispositivo> scan
y podras buscar dispositivos descubribles.