Skip to content

Instantly share code, notes, and snippets.

@halmartin
Created March 14, 2026 08:54
Show Gist options
  • Select an option

  • Save halmartin/14480f26ad709e01f05d0f3f109ac82d to your computer and use it in GitHub Desktop.

Select an option

Save halmartin/14480f26ad709e01f05d0f3f109ac82d to your computer and use it in GitHub Desktop.
Luxul XMS-1010P

Specs

  • 10, Gigabit RJ45 Ports
  • 8, 802.3af/at PoE+ Ports
  • Total Power Budget of 130W
  • Up to 30 Watts Per Port
  • 20Gbps Switching Capacity
  • 802.1Q VLAN Support with Trunking
  • Quality of Service (QoS)
  • Simple Installation and Power Management of PoE-Enabled Devices
  • Compact High Quality Metal Enclosure
  • Flexible Mounting Options: Surface, Wall or Standard 19” Rack

Firmware

Release notes

Release Firmware Version 1.0.0.3
Enhancements:
• Minor UI and bug improvements

https://res.cloudinary.com/avd/image/upload/v134179380/Resources/Luxul/Switches/Firmware/Luxul_Page-Firmware-XMS-1010P.pdf

Download

https://s3-us-west-2.amazonaws.com/luxul.release/XMS-1010P-1.0.0.3.bin

Analysis

Broadcom BCM5621X based switch, no OpenWrt support!

Kernel .config

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.21.7-hrt1
# Tue Oct 16 18:40:07 2012
#
CONFIG_MIPS=y
CONFIG_ZONE_DMA=y
CONFIG_BCM5621X=y
CONFIG_BCM5621X_NVRAM_BASE=0x1c088000
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_TIME=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_DMA_NONCOHERENT=y
CONFIG_DMA_NEED_PCI_MAP_STATE=y
CONFIG_CPU_BIG_ENDIAN=y
CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
CONFIG_IRQ_CPU=y
CONFIG_MIPS_L1_CACHE_SHIFT=5
CONFIG_CPU_MIPS32_R1=y
CONFIG_SYS_HAS_CPU_MIPS32_R1=y
CONFIG_CPU_MIPS32=y
CONFIG_CPU_MIPSR1=y
CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
CONFIG_32BIT=y
CONFIG_PAGE_SIZE_4KB=y
CONFIG_CPU_HAS_PREFETCH=y
CONFIG_MIPS_MT_DISABLED=y
CONFIG_CPU_HAS_LLSC=y
CONFIG_CPU_HAS_SYNC=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_CPU_SUPPORTS_HIGHMEM=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_ZONE_DMA_FLAG=1
CONFIG_HZ_250=y
CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
CONFIG_HZ=250
CONFIG_PREEMPT=y
CONFIG_PREEMPT_BKL=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_SYSFS_DEPRECATED=y
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="/home/work/BTO/trunk/build/XMS_1010P/fs"
CONFIG_INITRAMFS_ROOT_UID=0
CONFIG_INITRAMFS_ROOT_GID=0
CONFIG_HWTIMER_HOOKS=y
CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_KMOD=y
CONFIG_BLOCK=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_CFQ=y
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_MMU=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=y
CONFIG_TRAD_SIGNALS=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_FIB_HASH=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
CONFIG_NETFILTER=y
CONFIG_BRIDGE_NETFILTER=y
CONFIG_NETFILTER_XTABLES=m
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_IPRANGE=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=y
CONFIG_LLC=m
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_FIFO=y
CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_MTD=y
CONFIG_MTD_CONCAT=y
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_GEN_PROBE=y
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
CONFIG_MTD_CFI_AMDSTD=y
CONFIG_MTD_CFI_UTIL=y
CONFIG_MTD_RAM=y
CONFIG_MTD_COMPLEX_MAPPINGS=y
CONFIG_MTD_BCM5621X=y
CONFIG_MTD_PLATRAM=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
CONFIG_BONDING=m
CONFIG_TUN=m
CONFIG_SLIP=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLHC=m
CONFIG_SLIP_SMART=y
CONFIG_SLIP_MODE_SLIP6=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=2
CONFIG_SERIAL_8250_RUNTIME_UARTS=1
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
CONFIG_WATCHDOG=y
CONFIG_SOFT_WATCHDOG=m
CONFIG_HW_RANDOM=y
CONFIG_HWMON=y
CONFIG_FS_POSIX_ACL=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_RAMFS=y
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_RTIME=y
CONFIG_JFFS2_RUBIN=y
CONFIG_JFFS2_CMODE_PRIORITY=y
CONFIG_NFS_FS=y
CONFIG_NFS_DEF_FILE_IO_SIZE=4096
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_ROOT_NFS=y
CONFIG_ROOT_NFS_PATH="/tftpboot/%s"
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_MSDOS_PARTITION=y
CONFIG_MARKERS=y
CONFIG_MARKERS_DISABLE_OPTIMIZATION=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_WRNOTE=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_FS=y
CONFIG_DEBUG_KERNEL=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_DEBUG_PREEMPT=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_LIST=y
CONFIG_FORCED_INLINING=y
CONFIG_KGDB_SSTEP_IRQS_LOCKED=y
CONFIG_CMDLINE="console=ttyS0,9600 ip=192.168.0.11:192.168.0.1:192.168.0.1:255.255.255.0:bcm53314:eth0 root=/dev/nfs rw nfsroot=192.168.0.1:/opt"
CONFIG_RUNTIME_DEBUG=y
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_CAPABILITIES=y
CONFIG_SECURITY_BSDJAIL=m
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
CONFIG_CRYPTO_TEST=m
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y

Main initscript

#!/bin/sh

# jackey define bto startup script

REVISION_STRING="V200"
CONFIG_PATH=/cfg
RUN_MODULES=N

load_modules()
{
if [ $RUN_MODULES = N ]
then
	echo "\nStart Load Modules...\n"
	
	#����SDK�ں�����
	insmod /lib/modules/bcm/linux-kernel-bde.ko dmasize=8M himem=1
	rm /lib/modules/bcm/linux-kernel-bde.ko

	insmod /lib/modules/bcm/linux-uk-proxy.ko
	mknod /dev/linux-uk-proxy c 125 0
	rm /lib/modules/bcm/linux-uk-proxy.ko

	insmod /lib/modules/bcm/linux-bcm-core.ko
	rm /lib/modules/bcm/linux-bcm-core.ko

	insmod /lib/modules/bcm/linux-bcm-net.ko
	rm /lib/modules/bcm/linux-bcm-net.ko

	insmod /lib/modules/bcm/linux-bcm-diag.ko
	rm /lib/modules/bcm/linux-bcm-diag.ko 

	#����SDK�û�����,�˴����ܷ���SDK�ں˹���֮ǰ
	insmod /lib/modules/bcm/ukproxydrv.ko
	rm /lib/modules/bcm/ukproxydrv.ko 	
	
	echo "7       4       1       7" > /proc/sys/kernel/printk
	
	echo "done.\n"
fi

RUN_MODULES=Y
}

run_application()
{
echo "\nStart Normal Application\n"

load_modules

#�û������������
ssp error   
}

run_debug()
{
case $CHOICE in
q | Q)  echo "\nQuitting..."
		;;

1)      ssp debug system
        ;;
    
2)      load_modules
		ssp debug hardware
        ;;
		
*)      echo "\nInvalid option!  Displaying startup menu..."
        startup_menu
        ;;
esac
}

activate_backup_image()
{
echo "\nConfirm Activate Backup Image ? (y|n)"
read CHOICE

case $CHOICE in
y | Y)  echo "\nActivate Backup Image..."
		ssp debug backup
		echo "done."
		sleep 1
		echo "Rebooting..."
		kill 1
		sleep 30
		;;
		
*)      echo "\nDisplaying startup menu..."
        startup_menu
        ;;
esac
}

erase_current_config()
{
echo "\nConfirm Erase Present Configuration ? (y|n)"
read CHOICE

case $CHOICE in
y | Y)  echo "\nErasing present configuration..."
		rm -f ${CONFIG_PATH}/mib.conf
		rm -f ${CONFIG_PATH}/*.log*
		sleep 2
		echo "done."
		sleep 1
		;;
		
*)      echo "\nDisplaying startup menu..."
        startup_menu
        ;;
esac
}

debug_menu()
{
echo "\n"
cat << __START__
Startup -- Debug Menu

 1  - Start System Shell
 2  - Start Hardware Shell

 Q  - Quit Current Menu

__START__

echo "\nSelect Debug Option (1-2 or Q): "
read CHOICE

}

revision_info()
{
cat << __START__

Platform Startup Rev: $REVISION_STRING

__START__
}

main_menu()
{
trap ':' 10

revision_info

cat << __START__
Select startup mode.  If no selection is made within 3 seconds,
the platform Application will start automatically...

Startup -- Main Menu
  
1 - Start Normal Application
2 - Display Utility Menu
__START__
echo "\nSelect (1, 2): "

read -t 3 CHOICE

#if kill -0 $! 2>/dev/null; then
#kill -9 $!
#sleep 1
#fi >/dev/null 2>&1

if [ "$CHOICE" = "" ]
then
    CHOICE=1
    echo " "
fi
trap '' 10
}

startup_menu()
{
echo "\n"
cat << __START__
Startup -- Utility Menu

 1  - Start Normal Application
 2  - Erase Current Configuration
 3  - Activate Backup Image
 4  - Start Diagnostic Application
 5  - Reboot

 Q  - Quit And Start Normal Application

__START__

echo "\nSelect option (1-5 or Q): "
read CHOICE
}

##############
# START HERE #
##############

ifconfig lo up
# Set your own ip
#ifconfig eth1 192.168.1.1 up

# Mount Network Filesystem to /nfs
#mount -o nolock 192.168.30.101:/home/nfs_svr /nfs

# Start telnetd.
/usr/sbin/telnetd -p 2323

# Modify rc.nfs to your wish doing
#/nfs/rc.nfs

# Ignore most "death" signals...
trap '' 1 2 3 15

# Turn-off output from most printk()'s
echo "0       4       1       7" > /proc/sys/kernel/printk

main_menu

case $CHOICE in
1)      run_application 
        startup_menu
        ;;
    
2)      startup_menu
        ;;
		
*)      echo "\nInvalid option!  Displaying startup menu..."
        startup_menu
        ;;
esac

while :
do
case $CHOICE in
q | Q)  cd /
        echo "\nQuitting..."
        echo "done."
		run_application
        ;;
		
1)  run_application
    ;;

2)  erase_current_config
	;;

3)  activate_backup_image
    ;;
	
4)  debug_menu 
    run_debug
    ;;
	
5)  echo "Rebooting..."
    kill 1
    sleep 30
    ;;

*)  echo "Invalid option!"    
    ;;

esac

startup_menu

done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment