Equipos y materiales > Openwrt & LEDE

[Desarrollo] OpenWrt en Sercomm H500-s

(1/4) > >>

danitool:
El Sercomm H500-s es un router modem xDSL con un SoC BCM63167, 128 RAM, 128 MiB Flash tipo NAND, wifi AC y un puerto USB.



wiki:  https://openwrt.org/toh/sercomm/h500-s

Partes con funcionalidad limitada o nula en OpenWrt:

* Modem interno xDSL: no funciona, porque no hay soporte GPL en Linux y probablemente nunca lo habrá.
* VoIP / FXS : no existen drivers.
* WIFI 2.4GHz: No hay drivers, aunque podría haber soporte básico para el modo b/g en un futuro.
* WIFI 5GHz AC: Funciona igual que con el firmware original, pero la configuración ha de hacerse de forma manual, no se puede hacer mediante interfaz web LuCi. Resulta que el wifi AC va en un SoC aparte conectado mediante ethernet al SoC principal. Para configurarlo hace falta una utilidad de Quantenna, esta configuración se hace mediante línea de comandos. Para facilitar el trabajo, he compilado un firmware personalizado que activa el WiFi AC automáticamente. Este firmware lleva dentro la utilidad de Quantenna, el bootloader u-boot del SoC y el firmware ramdisk (topaz-linux) de Quantenna. Además de un script que activa automáticamente la carga del sistema wifi. Una vez arrancado la SSID y contraseña por defecto serán

* SSID: Quantenna
* Pass: qtn01234
Compilaciones OpenWrt. No recomendado para inexpertos:
VersiónLinkNotasCompilación personalizadaopenwrt-snapshot_r13601-h500-s-vfes-squashfs-factory.imgcon interfaz web Luci, wifi AC activado por defectoOpenwrt 21.02openwrt-21.02.0-bcm63xx-smp-sercomm_h500-s-vfes-squashfs-factory.imgcon interfaz web Luci, sin utilidad para activar wifi AC

Para instalarlo basta seguir las instrucciones que he colocado en la wiki. Hay que destacar que el router usará doble firmware, por lo que una vez instalado Openwrt habrá una partición que todavía contiene el firmware original en la partición o bien img1 ó img2.


Activar el wifi AC (5 GHz) en firmwares oficiales
Si quisiésemos usar el wifi AC tendríamos primero que configurar la interfaz ethernet para que tenga una IP compatible con la del SoC Quantenna. Podemos usar esta pila de comandos para configurarla:

--- Código: ---uci set network.lan2=interface
uci set network.lan2.ifname=@lan
uci set network.lan2.proto=static
uci set network.lan2.ipaddr=1.1.1.1
uci set network.lan2.netmask=255.0.0.0
uci commit network

--- Fin del código ---

Además necesitamos un server TFTP dentro de Openwrt, el cual se encarga de servir las imágenes (bootloader+ramdisk) que cargará el SoC Quantenna. Para configurarlo con las imágenes en el directorio /etc/wlan

--- Código: ---uci set dhcp.@dnsmasq[-1].enable_tftp=1
uci set dhcp.@dnsmasq[-1].tftp_root=/etc/wlan
uci commit dhcp

--- Fin del código ---

En /etc/wlan estarán los archivos topaz-linux.lzma.img y u-boot.bin.

Esta es la utilidad con los archivos necesarios, con script que inicia el wifi de Quantenna:
call_qcsapi_1.0.1-1_mips_mips32.ipkPaquete compilado, con la utilidad call_qcsapi_sockrpc, firmwares Quantena y script de iniciocall_qcsapi.tar.gzCódigo fuente del paquete
El paquete tiene la dependencia libtirpc. Por lo que habrá que instalarla también.



Si queremos configurar el wifi AC a nuestro gusto aquí nos encontraremos con un campo totalmente nuevo. Ya que no hay mucha información oficial sobre la API de Quantenna. Lo bueno que podemos coger como referencia el firmware oficial, el cual tiene la configuración almacenada en  /tmp/2/up_5g. Por ejemplo aquí teneis esta de referencia:

--- Código: ---~ # cat tmp/2/up_5g
qcsapi_sockraw br0 00:26:86:00:00:00 vlan_config eth1_0 enable
/sbin/ifconfig eth3.300 down
/usr/sbin/brctl delif br0 eth3.300
qcsapi_sockraw br0 00:26:86:00:00:00 rfenable 0
qcsapi_sockraw br0 00:26:86:00:00:00 set_security_defer_mode wifi0 1
/sbin/ifconfig eth3 up
/usr/sbin/brctl addif br0 eth3
qcsapi_sockraw br0 00:26:86:00:00:00 set_ssid wifi0 gatohambriento5G
qcsapi_sockraw br0 00:26:86:00:00:00 set_option wifi0 SSID_broadcast 1
qcsapi_sockraw br0 00:26:86:00:00:00 set_phy_mode wifi0 11ac80
qcsapi_sockraw br0 00:26:86:00:00:00 set_current_tx_power wifi0 100
qcsapi_sockraw br0 00:26:86:00:00:00 set_ap_isolate wifi0 0
qcsapi_sockraw br0 00:26:86:00:00:00 set_rts_threshold wifi0 2347
qcsapi_sockraw br0 00:26:86:00:00:00 set_beacon_interval wifi0 100
qcsapi_sockraw br0 00:26:86:00:00:00 set_group_key_interval wifi0 0
qcsapi_sockraw br0 00:26:86:00:00:00 clear_mac_filters wifi0
qcsapi_sockraw br0 00:26:86:00:00:00 set_macaddr_filter wifi0 0
qcsapi_sockraw br0 00:26:86:00:00:00 pm auto
qcsapi_sockraw br0 00:26:86:00:00:00 pm auto dual_emac
qcsapi_sockraw br0 00:26:86:00:00:00 set_tx_amsdu wifi0 1
qcsapi_sockraw br0 00:26:86:00:00:00 set_tx_max_amsdu wifi0 2
qcsapi_sockraw br0 00:26:86:00:00:00 set_option wifi0 beamforming 1
qcsapi_sockraw br0 00:26:86:00:00:00 set_option wifi0 autorate 1
qcsapi_sockraw br0 00:26:86:00:00:00 set_option wifi0 obss_coexist 1
qcsapi_sockraw br0 00:26:86:00:00:00 set_option wifi0 shortGI 1
qcsapi_sockraw br0 00:26:86:00:00:00 set_airfair wifi0 1
qcsapi_sockraw br0 00:26:86:00:00:00 set_option wifi0 802_11h 1
qcsapi_sockraw br0 00:26:86:00:00:00 set_ssid_group_id wifi0 1
qcsapi_sockraw br0 00:26:86:00:00:00 set_dev_assoc_limit wifi0 102
qcsapi_sockraw br0 00:26:86:00:00:00 set_beacon wifi0 11i
qcsapi_sockraw br0 00:26:86:00:00:00 set_WPA_encryption_modes wifi0 AESEncryption
qcsapi_sockraw br0 00:26:86:00:00:00 set_WPA_authentication_mode wifi0 PSKAuthentication
qcsapi_sockraw br0 00:26:86:00:00:00 set_passphrase wifi0 0 supersecreto
qcsapi_sockraw br0 00:26:86:00:00:00 set_priority wifi0  3
qcsapi_sockraw br0 00:26:86:00:00:00 enable_scs wifi0 1
qcsapi_sockraw br0 00:26:86:00:00:00 set_channel wifi0 0
qcsapi_sockraw br0 00:26:86:00:00:00 rfenable 1
killall scsd
/usr/sbin/scsd -r 1 -b 80 -c 36,40,44,48,52,56,60,64,100,104,108,112,132,136,140 -t 7200 &
qcsapi_sockraw br0 00:26:86:00:00:00 set_security_defer_mode wifi0 0
qcsapi_sockraw br0 00:26:86:00:00:00 set_dtim wifi0 1
qcsapi_sockraw br0 00:26:86:00:00:00 disable_wps wifi0 0
qcsapi_sockraw br0 00:26:86:00:00:00 set_wps_param wifi0 config_methods push_button,virtual_push_button,physical_push_button
qcsapi_sockraw br0 00:26:86:00:00:00 set_wps_param wifi0 uuid 00010203-0405-0607-0809-0a0b0c0ddead
qcsapi_sockraw br0 00:26:86:00:00:00 set_wps_param wifi0 manufacturer Sercomm
qcsapi_sockraw br0 00:26:86:00:00:00 set_wps_param wifi0 device_name Vodafone-H-500-s
qcsapi_sockraw br0 00:26:86:00:00:00 set_wps_param wifi0 model_name Vodafone-H-500-s
qcsapi_sockraw br0 00:26:86:00:00:00 set_wps_param wifi0 model_number Vodafone-H-500-s-v3.4.17
qcsapi_sockraw br0 00:26:86:00:00:00 set_wps_param wifi0 serial_number E1727BXKxxxxx
qcsapi_sockraw br0 00:26:86:00:00:00 set_wps_param wifi0 ap_pin_fail_method auto_lockdown
qcsapi_sockraw br0 00:26:86:00:00:00 apply_security_config wifi0
qcsapi_sockraw br0 00:26:86:00:00:00 set_wps_param wifi0 ap_setup_locked 1
qcsapi_sockraw br0 00:26:86:00:00:00 enable_wps_ap_pin wifi0 0
killall wifi_radar_5g
/usr/sbin/wifi_radar_5g -m 1 &
qcsapi_sockraw br0 00:26:86:00:00:00 set_bss_assoc_limit 2 4
qregist -i 300 -s 3 -d 1 -r


--- Fin del código ---

En este caso vemos que el fabricante usa el comando qcsapi_sockraw seguido de una MAC. Pero nosotros usaremos call_qcsapi_sockrpc  seguido de la IP del SoC Quantenna. Algunos ejemplos para Openwrt

--- Código: ---call_qcsapi_sockrpc --host 1.1.1.2 rfstatus
call_qcsapi_sockrpc --host 1.1.1.2 rfenable 1
call_qcsapi_sockrpc --host 1.1.1.2 set_channel wifi0 44
call_qcsapi_sockrpc --host 1.1.1.2 get_channel wifi0
--- Fin del código ---

Para explorar más a fondo los comandos disponibles os dejo este manual de referencia:
Quantenna Configuration and Status APIs - INTERNAL.pdf

Usé dos routers para conseguir el soporte (autodonados). Uno de ellos, versión Lowi, cayó al final del camino, tal vez un brick recuperable, resulta que la versión Lowi no deja parar CFE en la linea de comandos, aunque si le ponemos el bootloader de vodafone sí que podríamos.

Especial agradecimiento a Noltari por las mejoras en el driver NAND, además de haber hecho posible el poder generar un factory firmware para estos dispositivos de Sercomm.

Saludos.

Ficht:
 >:( >:( >:( >:(
Verdadero Crack,  enhorabuena.
Saludos.

lesgar:
Wow, probado y funcionando en mi sercom de lowi. Un Trabajo fenomenal!

Si me pasas el bootloader del sercom de vodafone puedo probar a flashearlo en mi sercom de lowi y comprobar que puedo acceder al bootloader desde uart.

No puedo acceder a la gui del quantenna se supone que está alojada en 1.1.1.2, no? o la version cargada de topaz-linux.lzma.img no lo leva?

He cargado la snapshot para el modelo de lowi y instalado el resto manualmente pq no estaba seguro que la imagen que lleva luci y el driver wifi era compatible con el  router de lowi y funciona bien conectado a la red de lowi

jar229:
Como siempre Danitool dándolo todo  >:( >:( >:( >:(

danitool:

--- Cita de: lesgar en 18-07-2020, 00:21 (Sábado) ---Wow, probado y funcionando en mi sercom de lowi. Un Trabajo fenomenal!

Si me pasas el bootloader del sercom de vodafone puedo probar a flashearlo en mi sercom de lowi y comprobar que puedo acceder al bootloader desde uart.

No puedo acceder a la gui del quantenna se supone que está alojada en 1.1.1.2, no? o la version cargada de topaz-linux.lzma.img no lo leva?

He cargado la snapshot para el modelo de lowi y instalado el resto manualmente pq no estaba seguro que la imagen que lleva luci y el driver wifi era compatible con el  router de lowi y funciona bien conectado a la red de lowi

--- Fin de la cita ---

Hola lesgar. El bootloader de vodafone funciona perfectamente en el de lowi,  tengo pendiente meter el bootloader vodafone en el  firmware OEM de lowi, hacerlo desde Openwrt resulta arriesgado y no recomendable.

No coloqué imagen para lowi, porque tenemos ese riesgo de brick y porque de este router hay pocas unidades en el mercado. No imaginaba que los primeros en probarlo sería gente con la versión lowi.

En cuanto a interfaz web en el firmware de quantenna viene sin ella, también viene con el telnet deshabilitado. También venía con la línea de comandos dehabilitada, aunque lo modifiqué para habilitar esto último.

El wifi AC funciona perfectamente, solo que es un poco más engorroso configurarlo. Este es de momento el único router broadcom de un proveedor con wifi AC funcionando en Openwrt. Con SoC de Quantenna hay  pocos modelos (tal vez 2 ó 3) soportados en Openwrt así que es improbable que se desarrolle algo para luci que configure el wifi. Aunque de todas formas había soporte creo que preliminar para ARC700 en Openwrt.

Saludos

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa