Etiqueta: macbook

  • CalDigit Thunderbolt Station 2 Setup Guide for MacBook Pro 11,1 + Debian (Kali Linux)

    CalDigit Thunderbolt Station 2 Setup Guide for MacBook Pro 11,1 + Debian (Kali Linux)

    System Configuration

    • Hardware: Apple MacBook Pro 11,1 (Mid 2013)
    • OS: Debian Testing / Kali GNU/Linux Rolling 2025.4
    • Kernel: 6.17.8-2-liquorix-amd64
    • Device: CalDigit Thunderbolt Station 2 (New device + new Thunderbolt cable)
    • Target: Connect USB devices (SanDisk) through Thunderbolt hub

    Initial Problem Description

    The CalDigit Thunderbolt Station 2 was experiencing connection issues:

    • Device would connect and disconnect repeatedly
    • Error: thunderbolt 0000:07:00.0: device link creation from 0000:06:00.0 failed
    • Error: 0:2: failed to reach state TB_PORT_UP. Ignoring port...
    • USB devices connected to the CalDigit would not be recognized properly

    Root Cause Analysis

    The issues were caused by multiple factors:

    1. Power Management Conflicts: MacBook Pro 11,1 with Liquorix kernel had aggressive power management interfering with Thunderbolt
    2. PCI Bus Assignment Issues: Insufficient bus numbers allocated for hotplug devices
    3. Thunderbolt Security: Device authorization problems
    4. PCIe ASPM: Advanced State Power Management causing communication failures

    Complete Solution

    Step 1: Kernel Parameter Modification

    Edit GRUB configuration to add specific kernel parameters:

    sudo joe /etc/default/grub
    

    Modify the GRUB_CMDLINE_LINUX_DEFAULT line to include:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet pcie_aspm=off pci=realloc,assign-busses pcie_port_pm=off thunderbolt.start_icm=1"
    

    Parameter Explanation:

    • pcie_aspm=off: Disables PCIe Advanced State Power Management
    • pci=realloc,assign-busses: Forces PCI bus reallocation and assignment
    • pcie_port_pm=off: Disables PCIe port power management
    • thunderbolt.start_icm=1: Forces Intel Connection Manager startup

    Apply changes:

    sudo update-grub
    sudo reboot
    

    Step 2: Post-Boot Verification

    After reboot, verify the CalDigit is detected:

    # Check Thunderbolt devices
    sudo dmesg | grep -i thunderbolt | head -10
    
    # Should show:
    # thunderbolt 0-3: CalDigit, Inc. Thunderbolt Station 2
    # No more "device link creation failed" errors
    
    # Verify device listing
    ls -la /sys/bus/thunderbolt/devices/
    

    Step 3: Device Authorization with Bolt

    Install and configure bolt for Thunderbolt device management:

    # Install bolt (if not already installed)
    sudo apt update && sudo apt install bolt
    
    # Check device status
    sudo boltctl list
    
    # The CalDigit should show as "authorized"
    

    Step 4: Verify USB Functionality

    Connect USB devices to the CalDigit and verify recognition:

    # Check USB device tree
    lsusb -t
    
    # Check connected storage devices
    lsblk
    
    # Verify USB devices by-id
    ls -la /dev/disk/by-id/ | grep usb
    

    Expected Results

    After applying the solution:

    1. Thunderbolt Detection: CalDigit appears as thunderbolt 0-3: CalDigit, Inc. Thunderbolt Station 2
    2. Authorization Status: Device shows as authorized in bolt
    3. USB Devices: Connected USB devices appear normally in lsusb and lsblk
    4. No Error Messages: No more «device link creation failed» or port timeout errors

    Troubleshooting Commands

    Diagnostic Commands

    # View Thunderbolt module parameters
    cat /sys/module/thunderbolt/parameters/*
    
    # Check PCI tree for Thunderbolt devices
    sudo lspci -tv | grep -A 5 -B 5 Thunderbolt
    
    # Monitor real-time device connections
    sudo dmesg -w
    
    # Check device authorization status
    cat /sys/bus/thunderbolt/devices/0-3/authorized
    
    # View detailed PCI bridge information
    sudo lspci -vvv -s 06:00.0
    

    Reset Commands (if needed)

    # Reload Thunderbolt module
    sudo modprobe -r thunderbolt
    sudo modprobe thunderbolt start_icm=true
    
    # Force PCI rescan
    echo 1 | sudo tee /sys/bus/pci/rescan
    
    # Manual device authorization (if bolt fails)
    echo 1 | sudo tee /sys/bus/thunderbolt/devices/0-3/authorized
    

    Hardware-Specific Notes

    MacBook Pro 11,1 Considerations

    • This model uses Intel DSL5520 Thunderbolt 2 Controller (Falcon Ridge 4C 2013)
    • Requires specific power management settings due to aggressive power saving in the chipset
    • BIOS/EFI settings may need Thunderbolt security set to «No Security» or «User Authorization»

    Kernel Compatibility

    • Liquorix kernel: More aggressive optimizations can interfere with Thunderbolt
    • Standard Debian kernel: Generally more compatible with Apple hardware
    • The solution works with Liquorix but may require additional parameters

    CalDigit Thunderbolt Station 2 Specifics

    • Supports Thunderbolt 2 (20 Gbps)
    • Provides 3x USB 3.0 ports, Ethernet, audio, and additional Thunderbolt passthrough
    • Requires external power adapter for full functionality
    • Some USB devices may require specific ports for optimal performance

    Alternative Solutions (if main solution fails)

    Option 1: Switch to Standard Kernel

    # Install standard Debian kernel
    sudo apt install linux-image-amd64
    # Select standard kernel at next boot
    

    Option 2: Additional GRUB Parameters

    If the main solution partially works but has issues, try adding:

    pci=hpbussize=32 acpi=force intel_iommu=off
    

    Option 3: Firmware Updates

    # Check for firmware updates
    sudo fwupdmgr get-devices
    sudo fwupdmgr refresh
    sudo fwupdmgr get-updates
    

    Final Notes

    • The solution addresses the core compatibility issues between MacBook Pro 11,1, Liquorix kernel, and CalDigit Thunderbolt Station 2
    • All kernel parameters are essential for proper operation
    • USB devices connected to the CalDigit should work normally after applying the solution
    • The fix is persistent across reboots once GRUB is updated
    • Monitor dmesg logs if any issues arise with new USB devices

    Success Indicators

    CalDigit Detection: Device appears in bolt list as authorized
    No Error Messages: Clean dmesg output for Thunderbolt events
    USB Functionality: Connected devices appear in lsusb and lsblk
    Stable Operation: No disconnect/reconnect cycles
    Storage Access: USB storage devices mount and operate normally



    Hardware: MacBook Pro 11,1 (Mid 2013)
    Software: Kali Linux Rolling 2025.4 + Liquorix kernel 6.17.8
    Device: CalDigit Thunderbolt Station 2 + Various USB devices

  • Debian GNU/Linux en MacBook Pro 2013. Por 140€ en 3-5 años más de vida para mi MacBook Pro 2013

    Debian GNU/Linux en MacBook Pro 2013. Por 140€ en 3-5 años más de vida para mi MacBook Pro 2013

    Un MacBook Pro de 11 años puede seguir siendo útil en 2025, pero requiere cuidados específicos y decisiones técnicas informadas. Esta es la historia de cómo convertí 140€ en varios años más de vida útil, con lecciones técnicas importantes sobre las diferencias entre generaciones de hardware Apple.

    El problema: batería hinchada y decisión crítica

    Mi MacBook Pro 11,1 (Late 2013) tenía la bateria inutil desde hace años, pero el problema real se hizo evidente al decidir abrirlo para inspección: batería visiblemente hinchada.

    La batería había expandido lo suficiente para deformar el chasis interno, un problema común en MacBooks de esta generación después de años de uso. Este descubrimiento cambió completamente el diagnóstico de «batería gastada» a «riesgo de seguridad que requiere acción inmediata».

    Decisión crítica: Detener el uso inmediatamente hasta resolver el problema. Una batería hinchada no es solo un inconveniente, es un riesgo de seguridad real que puede dañar componentes internos o crear situaciones peligrosas.

    Análisis económico: ¿renovar o reemplazar?

    Alternativas consideradas:

    • ThinkPad E14 nuevo: ~350€
    • Renovación MacBook 2013: ~140€
    • Mantener como equipo fijo: 0€ (pero limitado)

    Factores decisivos:

    • Uso previsto: equipo secundario para desarrollo ocasional
    • Portabilidad necesaria: sí, para trabajar en diferentes ubicaciones
    • Presupuesto disponible: preferencia por inversión mínima efectiva

    La renovación ofreció la mejor relación costo-beneficio para mis necesidades específicas.

    Proceso de renovación técnica

    Reemplazo de batería: investigación y compra

    Opción elegida: Batería iFixit (119€ + herramientas)

    Alternativas descartadas:

    • Baterías genéricas de AliExpress: ~40€ (calidad dudosa, historiales de hinchazón temprana)
    • Servicio técnico oficial: >200€ (precio prohibitivo para equipo de 11 años)

    Instalación: Siguiendo la guía iFixit paso a paso, incluyendo limpieza interna completa con aire comprimido y alcohol isopropílico para remover años de acumulación de polvo.

    Resultado: Batería con 104.2% de capacidad (6669 mAh vs 6400 mAh de diseño), superando las especificaciones originales gracias a mejoras en la tecnología de celdas Li-ion.

    Cargador de repuesto

    Problema del cargador original: Conector T-pin excesivamente caliente tras años de uso, indicando posible degradación de contactos internos.

    Solución: Cargador compatible Ywcking (20€) como reemplazo principal, manteniendo el original como respaldo de emergencia.

    Optimizaciones de sistema críticas

    Gestión de memoria: zram como salvavidas

    Con solo 8GB de RAM física, implementé zram para expansión de memoria virtual comprimida:

    # Configuración zram implementada
    /dev/zram0: 3.8GB comprimidos
    Ratio compresión: ~3:1
    Resultado efectivo: ~10-12GB memoria utilizable

    Impacto medido: Firefox puede mantener 15-20 pestañas abiertas sin degradación perceptible del sistema.

    Optimización Firefox para RAM limitada

    # Configuraciones clave en about:config
    browser.cache.memory.capacity: 51200 (50MB)
    browser.sessionhistory.max_total_viewers: 0
    browser.tabs.unloadOnLowMemory: true

    Extensiones esenciales:

    • uBlock Origin: Bloqueo de contenido pesado
    • Auto Tab Discard: Suspensión automática de pestañas inactivas

    Gestión energética inteligente

    Limitaciones críticas del MacBook Pro 2013

    Realidad técnica: A diferencia de laptops más modernos, el MacBook Pro 11,1 bajo Linux NO soporta control automático de umbrales de carga de batería:

    # Verificación en mi sistema
    sudo tlp-stat -b
    # Resultado: "Supported features: none available"
    # charge_control_start_threshold = (not available)
    # charge_control_end_threshold = (not available)

    Esta limitación requiere estrategias manuales de protección.

    Sistema de monitorización automática

    Desarrollé scripts de protección que compensan las limitaciones del hardware:

    #!/bin/bash
    # Script de monitorización cada 5 minutos vía cron
    # Alertas por temperatura >42°C
    # Warnings por tiempo prolongado al 100%
    # Modo nocturno estricto 22:00-08:00

    Configuración TLP funcional (sin umbrales automáticos):

    # Configuraciones que SÍ funcionan en MacBook Pro 2013
    TLP_ENABLE=1
    CPU_SCALING_GOVERNOR_ON_AC=ondemand
    CPU_SCALING_GOVERNOR_ON_BAT=powersave
    CPU_BOOST_ON_BAT=0
    PLATFORM_PROFILE_ON_BAT=low-power
    WIFI_PWR_ON_BAT=on

    Estrategias diferenciadas por hardware

    MacBook Pro 2013: Rutina manual estricta

    Limitaciones técnicas:

    • Sin gestión automática de batería
    • Tecnología de carga de 2013
    • Mayor susceptibilidad a degradación térmica

    Rutina diaria implementada:

    • Rango óptimo: 20-85% (manual)
    • Desconexión nocturna obligatoria
    • Monitorización cada 5 minutos via cron
    • Hibernación inteligente configurada

    Rutina mensual para calibración:

    1. Desactivar protección automática
    2. Descarga controlada hasta 5% (NO 0%)
    3. Carga completa al 100%
    4. Reactivar protección

    Diferenciación importante: Mac M1

    ADVERTENCIA CRÍTICA: Las estrategias para MacBook 2013 NO se aplican a Mac M1.

    Mac M1 + Folding@Home:

    • Optimización automática de batería nativa
    • Conectado 24/7 durante Folding es aceptable
    • Rutina mensual 30% (NO semanal, NO 0%)
    • Gestión térmica superior

    Hibernación a disco: configuración avanzada

    Diagnóstico inicial

    # Estado original del sistema
    cat /sys/power/state
    # Output: "freeze mem" (hibernación no disponible)
    
    # Configuración kernel
    grep CONFIG_HIBERNATION /boot/config-$(uname -r)
    # Output: CONFIG_HIBERNATION=y (soporte disponible)

    Configuración paso a paso

    Requisitos cumplidos:

    • RAM: 7.7GB
    • Swap disponible: 15GB (11.2GB disco + 3.8GB zram)
    • UUID swap: a13628e9-f161-4315-afea-4d06e704d09d

    Implementación:

    # 1. Configurar GRUB
    sudo nano /etc/default/grub
    # Añadir: resume=UUID=a13628e9-f161-4315-afea-4d06e704d09d
    sudo update-grub
    
    # 2. Configurar initramfs
    echo "RESUME=UUID=a13628e9-f161-4315-afea-4d06e704d09d" | sudo tee /etc/initramfs-tools/conf.d/resume
    sudo update-initramfs -u
    
    # 3. Reiniciar y verificar
    sudo reboot
    cat /sys/power/state
    # Resultado esperado: "freeze mem disk"

    Sistema de hibernación inteligente

    Script automatizado que:

    • Crea snapshots de trabajo antes de hibernar
    • Hibernación automática al 15% de batería
    • Countdown cancelable de 60 segundos
    • Modo «descarga completa» para calibración
    • Restauración de sesión post-hibernación

    Resultados medibles

    Rendimiento del sistema

    Antes de optimizaciones:

    • RAM efectiva: 8GB
    • Multitarea limitada: 5-8 pestañas Firefox
    • Autonomía: ~2 horas
    • Temperaturas: CPU >80°C frecuente

    Después de optimizaciones:

    • RAM efectiva: ~12GB (con zram)
    • Multitarea mejorada: 15-20 pestañas estables
    • Autonomía: 5-7 horas uso real
    • Temperaturas: CPU <75°C normal

    Longevidad de batería

    Datos actuales (3 meses post-instalación):

    # Estado verificado
    Manufacturer: ifixit
    Model: bq20z451 (Texas Instruments - premium)
    Cycle Count: 4 (prácticamente nueva)
    Capacity: 104.2% (superior a original)
    Charge Full: 6669 mAh (vs 6400 mAh diseño)

    Lecciones técnicas importantes

    Inversión inteligente vs reemplazo

    Total invertido: 140€ (batería 120€ + cargador 20€)
    Alternativa evitada: 350€ ThinkPad nuevo
    Ahorro neto: 210€
    Vida útil proyectada: 3-5 años adicionales

    Diferencias generacionales críticas

    Error común: Aplicar estrategias modernas a hardware legacy. Las capacidades de gestión energética han evolucionado significativamente entre 2013 y 2020+.

    Realidad técnica: Hardware de 2013 requiere supervisión manual donde hardware moderno tiene automatización.

    Importancia de la monitorización

    Sin capacidades automáticas de protección, la implementación de sistemas de alertas y scripts de monitorización se vuelve esencial para prevenir degradación acelerada.

    Conclusión: viabilidad a largo plazo

    Un MacBook Pro de 2013 puede seguir siendo funcional en 2025 con:

    1. Hardware renovado: Batería premium + limpieza interna
    2. Optimizaciones específicas: zram, TLP, Firefox tuning
    3. Protección automatizada: Scripts de monitorización
    4. Rutinas disciplinadas: Carga manual inteligente
    5. Hibernación configurada: Protección total del trabajo

    Casos de uso viables:

    • Desarrollo ligero y scripting
    • Navegación web optimizada
    • Tareas de productividad básica
    • Equipo secundario/respaldo

    No recomendado para:

    • Edición de video pesada
    • Gaming moderno
    • Compilación de proyectos grandes
    • Uso como equipo principal

    La clave está en entender las limitaciones del hardware y trabajar dentro de ellas, no contra ellas. Con las optimizaciones correctas y expectativas realistas, la inversión de 140€ puede proporcionar varios años más de utilidad de un equipo que de otro modo sería descartado.

    Recursos técnicos:

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.