ZTE MF823 3G USB Modem/Ethernet dongle with ALIX board & pfsense 2.1 panic



  • Hi all,

    I'm trying to work out why pfsense 2.1 embedded on an ALIX3d2 crashes with a ZTE MF823 3G USB Modem/Ethernet dongle, where pfsense 2.1 on an old PC boots fine and finds the hardware.
    I'm assuming that it is something to do with the ALIX board somehow but am unsure why or if it can be overcome. It looks like this modem presents itself as a usb ethernet device "ue0".

    If anyone has any insights into this, I would love to hear from you.

    I have attached 2 boot logs. One from the crashed ALIX boot and the other from the successful PC boot. The line of interest to me is the multiple  "ugen1.2: <zte,incorporated>at usbus1 (disconnected)"

    Thanks.
    [ALIX3d2 boot crash with ZTE MF823.txt](/public/imported_attachments/1/ALIX3d2 boot crash with ZTE MF823.txt)
    [PC boot with ZTE MF823.txt](/public/imported_attachments/1/PC boot with ZTE MF823.txt)</zte,incorporated>



  • Hi jaj,

    I think I've cracked this one. The problem is the ALIX3d2 is still doing USB discovery while trying to load the pfsense config. Adding a 20 second delay to the boot up process allows the USB dongle to be found before loading the pfsense config.

    To do this, I did a quick hack to rc.bootup. Connect to the pfsense Shell either via SSH or serial port.

    Allow the file/system to be read/write:
    [[2.2.3-RELEASE][root@gw-ext]/root: /etc/rc.conf_mount_rw

    Edit the rc.bootup script to add a sleep(20) line so that boot is pauses for 20 seconds before the configuration file is loaded around line 156:
    [2.2.3-RELEASE][root@gw-ext]/root: ee /etc/rc.bootup

    [snip]
    // Display rescue configuration option
    if($g['platform'] == "cdrom")
                    rescue_detect_keypress();

    // Hack for 4G modem
    echo "Waiting 20 seconds for USB interfaces to found.\n";
    sleep(20);

    echo "Loading configuration…";
    parse_config_bootup();
    echo "done.\n";

    [snip]

    Make the file/system to read only again:
    [2.2.3-RELEASE][root@gw-ext]/root: /etc/rc.conf_mount_ro

    Good luck!