Problem when install nanobsd 4GB on Watchguard FB III [SOLVED !!!]



  • Hi,

    I have some trouble to install a nanobsd 4GB on my Firebox III.

    I have this:

    –-
    Psec: Initialized Security Association Processing.
    ad0: FAILURE - SETFEATURES SET TRANSFER MODE status=51 <ready,dsc,error>error=4<
    ABORTED>
    ad0: 7MB < VER4.64> at ata0-master BIOSPIO
    ad1: WARNING - SET_MULTI taskqueue timeout - completing request directly
    ad1: 3927MB < 20070308> at ata0-slave PIO4
    ad0: FAILURE - SETFEATURES SET TRANSFER MODE status=51 <ready,dsc,error>error=4<
    ABORTED>
    ad0: TIMEOUT - READ retrying (1 retry left) LBA=16
    ad1: WARNING - SET_MULTI freeing taskqueue zombie request
    ad1: WARNING - READ taskqueue timeout - completing request directly
    ad0: FAILURE - SETFEATURES SET TRANSFER MODE status=51 <ready,dsc,error>error=4<
    ABORTED>
    ad0: TIMEOUT - READ retrying (0 retries left) LBA=16

    Fatal trap 12: page fault while in kernel mode
    fault virtual address   = 0xc25fa000
    fault code              = supervisor write, page not present
    instruction pointer     = 0x20:0xc0565601
    stack pointer           = 0x28:0xc2355c2c
    frame pointer           = 0x28:0xc2355c58
    code segment            = base 0x0, limit 0xfffff, type 0x1b
                           = DPL 0, pres 1, def32 1, gran 1
    processor eflags        = interrupt enabled, resume, IOPL = 0
    current process         = 27 (irq14: ata0)
    trap number             = 12
    panic: page fault
    Uptime: 51s
    Cannot dump. No dump device defined.
    Automatic reboot in 15 seconds - press a key on the console to abort
    --> Press a key on the console to reboot,
    --> or switch off the system now.
    Rebooting...
    ---</ready,dsc,error></ready,dsc,error></ready,dsc,error>



  • Yeah, FreeBSD doesn't run on the FB III.
    Search the m0n0wall forum for more details and notes on how to roll a 4.11 kernel that will allow you to run m0n0 1.2x. I've heard 6.4 (m0n0 1.3) will run on it, but I haven't tested. Last time I tried a RC of 8.0 it didn't work either. Someone was hacking up some code for the screen also, but I haven't heard anything in a while.
    My advice is to scrap it, but if you make any progress, please share.



  • @dotdash:

    Yeah, FreeBSD doesn't run on the FB III.

    Very false !!!

    I have installed the nanobsd 4GB at first boot but now I have this problem. I think there is a problem with controller or bios.

    I have another Firebox model II and works very well with pfsense 1.2.2 embedded and I think also with the complete version.



  • Hi,

    now I have installed successfully 1.2.3 nanobsd 4GB in a 4GB DOM with UDMA support and all works well.
    Only one problem is the network interfaces of Firebox III. There are 3 x Macronix 98715AEC-C 10/100BaseTX NIC interfaces.
    The bsd drivers don't read mac addresses correctly, if I run if config I have this:

    dc0: flags=8943 <up,broadcast,running,promisc,simplex,multicast>metric 0 mtu 150
    0
           options=8 <vlan_mtu>ether 00:00:00:00:00:00
           inet6 fe80::7831:833c:16db:3d3%dc0 prefixlen 64 scopeid 0x1
           media: Ethernet autoselect (none)
           status: no carrier
    dc1: flags=8843 <up,broadcast,running,simplex,multicast>metric 0 mtu 1500
           options=8 <vlan_mtu>ether 00:00:00:00:00:00
           inet 192.168.0.98 netmask 0xffffff00 broadcast 192.168.0.255
           inet6 fe80::7831:833c:16db:3d3%dc1 prefixlen 64 scopeid 0x2
           media: Ethernet autoselect (none)
           status: no carrier
    dc2: flags=8802 <broadcast,simplex,multicast>metric 0 mtu 1500
           options=8 <vlan_mtu>ether 00:00:00:00:00:00
           media: Ethernet autoselect
           status: no carrier

    The mac addresses are all zeros. If I run
    ifconfig dc0 ether 00:11:22:33:44:55
    i can set the mac address but this is only a temporary setting.
    If I restart OS the mac addresses return alla zeros.
    I have post this problem to FreeBSD community but they say that don't can help me.
    I have searched on google and I have found that this is a Macronix driver problem.

    How can I solve this problem ? Can I store ifconfig settings in a pfsense config file ?
    Can I recompile the kernel with another working driver ?

    Thanks in advance.</vlan_mtu></broadcast,simplex,multicast></vlan_mtu></up,broadcast,running,simplex,multicast></vlan_mtu></up,broadcast,running,promisc,simplex,multicast>



  • Hi,

    I have modified the /etc/inc/interfaces.inc file and I have some solutions.

    This is the original procedure in the interfaces.inc file:
    _function interfaces_lan_configure() {
    global $config, $g;

    $lancfg = $config['interfaces']['lan'];

    /* if user has removed ip address, clear it*/
    if($lancfg['ipaddr'] == "")
    mwexec("/sbin/ifconfig {$lancfg['if']} delete");

    /* wireless configuration? */
    if (is_array($lancfg['wireless']))
    interfaces_wireless_configure($lancfg['if'], $lancfg['wireless']);

    / MAC spoofing? /
    if ($lancfg['spoofmac']) {
    mwexec("/sbin/ifconfig " . escapeshellarg($lancfg['if']) .
    " link " . escapeshellarg($lancfg['spoofmac']));
    } else {
    $mac = get_interface_mac_address($lancfg['if']);
    if($mac == "ff:ff:ff:ff:ff:ff") {
    /
      this is not a valid mac address.  generate a
    *  temporary mac address so the machine can get online.
    /
    echo "Generating new MAC address.";
    $random_mac = generate_random_mac_address();
    mwexec("/sbin/ifconfig " . escapeshellarg($lancfg['if']) .
    " link " . escapeshellarg($random_mac));
    $lancfg['spoofmac'] = $random_mac;
    write_config();
    file_notice("MAC Address altered", "The INVALID MAC address (ff:ff:ff:ff:ff:ff) on interface {$lancfg['if']} has been automatically replaced with {$random_mac}", "Interfaces");
    }
    }

    /* bridged? */
    if ($lancfg['bridge']) {
    setup_bridge();
    }

    /* media */
    if ($lancfg['media'] || $lancfg['mediaopt']) {
    $cmd = "/sbin/ifconfig " . escapeshellarg($lancfg['if']);
    if ($lancfg['media'])
    $cmd .= " media " . escapeshellarg($lancfg['media']);
    if ($lancfg['mediaopt'])
    $cmd .= " mediaopt " . escapeshellarg($lancfg['mediaopt']);
    mwexec($cmd);
    }

    mwexec("/sbin/ifconfig " . escapeshellarg($lancfg['if']) . " " .
    escapeshellarg($lancfg['ipaddr'] . "/" . $lancfg['subnet']));

    if (!$g['booting']) {
    /* make new hosts file */
    system_hosts_generate();

    /* reconfigure static routes (kernel may have deleted them) */
    system_routing_configure();

    /* set the reload filter dity flag */
    touch("{$g['tmp_path']}/filter_dirty");

    /* reload IPsec tunnels */
    vpn_ipsec_configure();

    /* reload dhcpd (gateway may have changed) */
    services_dhcpd_configure();

    /* reload dnsmasq */
    services_dnsmasq_configure();

    /* reload captive portal */
    captiveportal_configure();

    }

    return 0;
    }_

    **This is my first modification for generate a random mac address for lan NIC with 00:00:00:00:00:00 mac address :

    /* MAC spoofing? /
    if ($lancfg['spoofmac']) {
    mwexec("/sbin/ifconfig " . escapeshellarg($lancfg['if']) .
    " link " . escapeshellarg($lancfg['spoofmac']));
    } else {
    $mac = get_interface_mac_address($lancfg['if']);
    if($mac == "00:00:00:00:00:00") {
    /
      this is not a valid mac address.  generate a
    *  temporary mac address so the machine can get online.
    /
    echo "Generating new MAC address.";
    $random_mac = generate_random_mac_address();
    mwexec("/sbin/ifconfig " . escapeshellarg($lancfg['if']) .
    " link " . escapeshellarg($random_mac));
    $lancfg['spoofmac'] = $random_mac;
    write_config();
    file_notice("MAC Address altered", "The INVALID MAC address (00:00:00:00:00:00) on interface {$lancfg['if']} has been automatically replaced with {$random_mac}", "Interfaces");
    }
    }
    *

    **This is my second modification for set a fixed mac address for lan NIC with 00:00:00:00:00:00 mac address:

    /* MAC spoofing? /
    if ($lancfg['spoofmac']) {
    mwexec("/sbin/ifconfig " . escapeshellarg($lancfg['if']) .
    " link " . escapeshellarg($lancfg['spoofmac']));
    } else {
    $mac = get_interface_mac_address($lancfg['if']);
    if($mac == "00:00:00:00:00:00") {
    echo "Setting fixed MAC address.";
    $fixed_mac = "00:00:00:00:00:11";
    mwexec("/sbin/ifconfig " . escapeshellarg($lancfg['if']) .
    " link " . escapeshellarg($fixed_mac));
    $lancfg['spoofmac'] = $fixed_mac;
    write_config();
    }
    }
    *

    Now the mac adresses can be generated randomly or fixed and the NICs works correctly.
    You can choose my first or second modification and apply this to interfaces.inc file by pfsense web gui -> diagnostics -> edit file ->
    Save/Load from path: /etc/inc/interfaces.inc

    ;) ;) ;)



  • @Antonix:

    @dotdash:

    Yeah, FreeBSD doesn't run on the FB III.

    Very false !!!

    I have installed the nanobsd 4GB at first boot but now I have this problem. I think there is a problem with controller or bios.

    I have another Firebox model II and works very well with pfsense 1.2.2 embedded and I think also with the complete version.

    I'm glad you're making progress on this, but try not to be a jerk about it.
    I've tried stock FreeBSD 4.11, 6.2, 7.0, and one of the 8 RC's on a Firebox III.
    At least when you load the OS on a laptop HDD, set the onboard flash to slave- they all failed to boot. They wouldn't get past the point where it queried the onboard flash drive. See here for details- http://old.nabble.com/Re:-Running-FreeBSD-on-Firebox-III-td15789848.html
    I heard reports from another user that 6.4 was working, which I mentioned, and 7.2 may work as well.
    The FB II, is a different board and didn't have the problem with the ATA controller.
    I haven't had interest or spare time to test my FB III with newer versions, but I may try again with the nano version.
    For the benefit of others with old FB III's, what was your procedure?
    I'm assuming you imaged the dom on another machine and connected it to the on-board IDE of the FB III after setting the jumper to slave for the on-board flash. Did you change any settings in the BIOS?
    When I used m0n0 on my FB, I modified the driver (see the nabble link) to correctly pull the MACs, but another option is to edit the config.xml to set the MACs.



  • Hi dotnash,

    this is the procedure I have used:

    **1) Connect an external CDROM drive to 44 pin ata controller as a slave device.

    1. Boot from CDROM with Ultimate Boot Cd and remove the on board flash partitions.
    2. Connect a DOM or a CF to PC via USB and trasfer a nanobsd 4GB image with phydiskwrite.
    3. Connect the DOM or CF to 44pin ata controller and set the device as a master.
    4. Boot and configure pfsense with Teraterm from serial console.
    5. Apply my modification to interfaces.inc file as explain in my previous post.
    6. My DOM have a DMA support and I have set DMA from bios and in the loader.conf file**

    Now I'm searching for procedure to work with front LED bars. ;)



  • Somebody going by the name of 'jimmy' was working on some LED code, but I haven't heard any updates.
    http://forum.pfsense.org/index.php/topic,14315.0.html


Locked