• Be 24 meg Thompson Speedtouch snmp enable

    We have the Be (Broken link https://www.bethere.co.uk/) 24 meg adsl in the office which uses their own Thompson Speedtouch 716 router. I’ve had some fun tracking down how you enable SNMP. This is what I had to do.

    Check if the SNMP_AGENT system service is enabled, mine was not:

    id="typed" id="typed"{Administrator}=>service system list
    
    Idx Name             Protocol         SrcPort  DstPort  Group            State
    ---------------------------------------------------------------------------------
      1 CWMP_client      tcp                       80                        disabled
      2 CWMP_server      tcp                       51005                     disabled
      3 DHCP-S           udp                       49152                     disabled
      4 DNS-C            udp                       53                        enabled
      5 DNS-S            udp                       53                        enabled
      6 Dynamic DNS                                                          enabled
      7 FTP              tcp                       21                        enabled
      8 HTTP             tcp                       80                        enabled
      9 HTTPI            tcp                       8080                      disabled
     10 HTTPs            tcp                       443                       enabled
     11 IGMP-Proxy       igmp                                                disabled
     12 IP_COMMANDS                                                          enabled
     13 MDAP             udp                       3235                      enabled
     14 PING_RESPONDER   icmp                      8                         enabled
     15 PPTP                                                                 enabled
     16 RIP              udp              520      520                       disabled
     17 SNMP_AGENT       udp                       161                       enabled
     18 SNTP             udp              123      123                       disabled
     19 SSDP             udp                       1900                      enabled
     20 TELNET           tcp                       23                        enabled
     21 VOIP_SIP                                   5060                      disabled
     22 WEBF             tcp                       80                        disabled
    {Administrator}=>
    

    Turn it on

    {Administrator}=>service system modify
    name = SNMP_AGENT
    [state] = enabled
    [log] = false
    :service system modify name=SNMP_AGENT state=enabled log=disabled
    {Administrator}=>
    

    Add a RO community

    {Administrator}=>snmp community add
    securityname = ROCommunity
    communityname = ******
    Please retype communityname for verification.
    communityname = ******
    :snmp community add securityname=ROCommunity communityname=_DEV_E43BC822A4BAE52F
    {Administrator}[snmp community]=>
    

    Where the asterisks are type your chosen community name.

    Once this is done I could access the router using SNMP version 1 and my RO community string


  • VMware on linux Fedora 6 Kernel 2.6.19

    I’ve just upgraded a Fedora Core 6 machine. The update installed a new kernel, version 2.6.19.

    After rebooting with the new kernel and doing step 5 from this post (note: the correct path is now /lib/modules/2.6.19-1.2895.fc6/build/include/linux/config.h). I found that I got the error shown below:

    Building the vmnet module.
    
    Using 2.6.x kernel build system.
    make: Entering directory `/tmp/vmware-config3/vmnet-only'
    make -C /lib/modules/2.6.19-1.2895.fc6/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
    make[1]: Entering directory `/usr/src/kernels/2.6.19-1.2895.fc6-i686'
      CC [M]  /tmp/vmware-config3/vmnet-only/driver.o
      CC [M]  /tmp/vmware-config3/vmnet-only/hub.o
      CC [M]  /tmp/vmware-config3/vmnet-only/userif.o
    /tmp/vmware-config3/vmnet-only/userif.c: In function ‘VNetCopyDatagramToUser’:
    /tmp/vmware-config3/vmnet-only/userif.c:629: error: ‘CHECKSUM_HW’ undeclared (first use in this function)
    /tmp/vmware-config3/vmnet-only/userif.c:629: error: (Each undeclared identifier is reported only once
    /tmp/vmware-config3/vmnet-only/userif.c:629: error: for each function it appears in.)
    make[2]: *** [/tmp/vmware-config3/vmnet-only/userif.o] Error 1
    make[1]: *** [_module_/tmp/vmware-config3/vmnet-only] Error 2
    make[1]: Leaving directory `/usr/src/kernels/2.6.19-1.2895.fc6-i686'
    make: *** [vmnet.ko] Error 2
    make: Leaving directory `/tmp/vmware-config3/vmnet-only'
    Unable to build the vmnet module.
    

    I found the solution here, I’ve made my own patch which is available here (Broken link /wp-content/uploads/vmnet-only-2.6.19.patch). To apply this patch do the following (this assumes you have downloaded the patch into /tmp:

    # cd /usr/lib/vmware/modules/source/
    # cp vmnet.tar vmnet.tar.orig
    # tar xf vmnet.tar
    # patch -p0 < /tmp/vmnet-only-2.6.19.patch
    # tar cf vmnet.tar vmnet-only
    # vmware-config.pl
    

    This should now complete ok


  • getent truncating output

    This little chestnut just caught me out. I’m trying to test some theories with maximum users and groups etc on linux using a ldap backend for authentication. I’ve run a little script which happily created me 65536 groups and 65536 users but when I use ‘getent group’ or ‘getent password’ it only seems to return 500 ldap entries.

    It turns out the problem lies not with getent but with slapd limiting the returned results for any given query, the default is 500 (man 5 slapd.conf). The solution is to add ‘sizelimit -1’ to slapd.conf, restart and now getent should return the correct answer.


  • Vmware Server on Fedora Core 6

    I’ve just installed vmware on Fedora Core 6 without any hassles, this is how I did it.

    1. I knew that I needed the following packages so I installed these with yum before starting:
      1. kernel-devel
      2. gcc
      3. xinetd
    2. I ran yum update next, this is optional, but I think it is best to do this now because vmware builds a module for your kernel so you really want to grab any kernel updates now.
    3. I disabled the iptables firewall at this point, the machine is internal therefore it was not required: ``` [root@zaphod init.d]# chkconfig iptables off
    
      4. reboot the machine
      5. There is a compile error while the config script builds the kernel module (this is with kernel version 2.6.18-1.2869.fc6). An empty file needs touching to fix this: 
        ```
    touch /lib/modules/2.6.18-1.2869.fc6/build/include/linux/config.h
    
    1. Download and install the application, for reference I used the rpm named VMware-server-1.0.1-29996.i386.rpm
    2. Run vmware-config.pl, I accepted most of the defaults, the output of mine is shown below: ``` [root@zaphod ~]# vmware-config.pl Making sure services for VMware Server are stopped.
    Stopping VMware services:
       Virtual machine monitor                                 [  OK  ]
       Bridged networking on /dev/vmnet0                       [  OK  ]
       Virtual ethernet                                        [  OK  ]
    
    Configuring fallback GTK+ 2.4 libraries.
    
    In which directory do you want to install the mime type icons?
    [/usr/share/icons]
    
    What directory contains your desktop menu entry files? These files have a
    .desktop file extension. [/usr/share/applications]
    
    In which directory do you want to install the application's icon?
    [/usr/share/pixmaps]
    
    Trying to find a suitable vmmon module for your running kernel.
    
    None of the pre-built vmmon modules for VMware Server is suitable for your
    running kernel.  Do you want this program to try to build the vmmon module for
    your system (you need to have a C compiler installed on your system)? [yes]
    
    Using compiler "/usr/bin/gcc". Use environment variable CC to override.
    
    What is the location of the directory of C header files that match your running
    kernel? [/lib/modules/2.6.18-1.2869.fc6/build/include]
    
    Extracting the sources of the vmmon module.
    
    Building the vmmon module.
    
    Using 2.6.x kernel build system.
    make: Entering directory `/tmp/vmware-config1/vmmon-only'
    make -C /lib/modules/2.6.18-1.2869.fc6/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
    make[1]: Entering directory `/usr/src/kernels/2.6.18-1.2869.fc6-i686'
      CC [M]  /tmp/vmware-config1/vmmon-only/linux/driver.o
      CC [M]  /tmp/vmware-config1/vmmon-only/linux/hostif.o
      CC [M]  /tmp/vmware-config1/vmmon-only/common/cpuid.o
      CC [M]  /tmp/vmware-config1/vmmon-only/common/hash.o
      CC [M]  /tmp/vmware-config1/vmmon-only/common/memtrack.o
      CC [M]  /tmp/vmware-config1/vmmon-only/common/phystrack.o
      CC [M]  /tmp/vmware-config1/vmmon-only/common/task.o
      CC [M]  /tmp/vmware-config1/vmmon-only/common/vmx86.o
      CC [M]  /tmp/vmware-config1/vmmon-only/vmcore/moduleloop.o
      LD [M]  /tmp/vmware-config1/vmmon-only/vmmon.o
      Building modules, stage 2.
      MODPOST
      CC      /tmp/vmware-config1/vmmon-only/vmmon.mod.o
      LD [M]  /tmp/vmware-config1/vmmon-only/vmmon.ko
    make[1]: Leaving directory `/usr/src/kernels/2.6.18-1.2869.fc6-i686'
    cp -f vmmon.ko ./../vmmon.o
    make: Leaving directory `/tmp/vmware-config1/vmmon-only'
    The module loads perfectly in the running kernel.
    
    Do you want networking for your virtual machines? (yes/no/help) [yes]
    
    Configuring a bridged network for vmnet0.
    
    The following bridged networks have been defined:
    
    . vmnet0 is bridged to eth0
    
    All your ethernet interfaces are already bridged.
    
    Do you want to be able to use NAT networking in your virtual machines? (yes/no)
    [yes] no
    
    Do you want to be able to use host-only networking in your virtual machines?
    [no] no
    
    Extracting the sources of the vmnet module.
    
    Building the vmnet module.
    
    Using 2.6.x kernel build system.
    make: Entering directory `/tmp/vmware-config1/vmnet-only'
    make -C /lib/modules/2.6.18-1.2869.fc6/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
    make[1]: Entering directory `/usr/src/kernels/2.6.18-1.2869.fc6-i686'
      CC [M]  /tmp/vmware-config1/vmnet-only/driver.o
      CC [M]  /tmp/vmware-config1/vmnet-only/hub.o
      CC [M]  /tmp/vmware-config1/vmnet-only/userif.o
      CC [M]  /tmp/vmware-config1/vmnet-only/netif.o
      CC [M]  /tmp/vmware-config1/vmnet-only/bridge.o
      CC [M]  /tmp/vmware-config1/vmnet-only/procfs.o
      CC [M]  /tmp/vmware-config1/vmnet-only/smac_compat.o
      SHIPPED /tmp/vmware-config1/vmnet-only/smac_linux.x386.o
      LD [M]  /tmp/vmware-config1/vmnet-only/vmnet.o
      Building modules, stage 2.
      MODPOST
    WARNING: could not find /tmp/vmware-config1/vmnet-only/.smac_linux.x386.o.cmd for /tmp/vmware-config1/vmnet-only/smac_linux.x386.o
      CC      /tmp/vmware-config1/vmnet-only/vmnet.mod.o
      LD [M]  /tmp/vmware-config1/vmnet-only/vmnet.ko
    make[1]: Leaving directory `/usr/src/kernels/2.6.18-1.2869.fc6-i686'
    cp -f vmnet.ko ./../vmnet.o
    make: Leaving directory `/tmp/vmware-config1/vmnet-only'
    The module loads perfectly in the running kernel.
    
    Please specify a port for remote console connections to use [902]
    
    Stopping xinetd:                                           [  OK  ]
    Starting xinetd:                                           [  OK  ]
    Configuring the VMware VmPerl Scripting API.
    
    Building the VMware VmPerl Scripting API.
    
    Using compiler "/usr/bin/gcc". Use environment variable CC to override.
    
    Installing the VMware VmPerl Scripting API.
    
    The installation of the VMware VmPerl Scripting API succeeded.
    
    Generating SSL Server Certificate
    
    In which directory do you want to keep your virtual machine files?
    [/var/lib/vmware/Virtual Machines]
    
    The path "/var/lib/vmware/Virtual Machines" does not exist currently. This
    program is going to create it, including needed parent directories. Is this
    what you want? [yes]
    
    Please enter your 20-character serial number.
    
    Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel:  XXXXX-XXXXX-XXXXX-XXXXX
    
    Starting VMware services:
       Virtual machine monitor                                 [  OK  ]
       Virtual ethernet                                        [  OK  ]
       Bridged networking on /dev/vmnet0                       [  OK  ]
    
    The configuration of VMware Server 1.0.1 build-29996 for Linux for this running
    kernel completed successfully.
    

    [root@zaphod ~]#

    
      8. Reboot the machine
      9. When it finishes booting you should have some vmware processes
    
    I also installed the Web Management Interface, the steps involved were:
    
      1. Download the tarball. I grabbed VMware-mui-1.0.1-29996.tar.gz
      2. Extract it and cd into the `vmware-mui-distrib` directory
      3. Run `./vmware-install.pl`. The output of mine is shown below: 
        ```
    [root@zaphod vmware-mui-distrib]# ./vmware-install.pl
    Creating a new installer database using the tar3 format.
    
    You must read and accept the End User License Agreement to continue.
    Press enter to display it.
    
    VMWARE MASTER END USER LICENSE AGREEMENT
    
    Do you accept? (yes/no) yes
    
    Thank you.
    
    Installing the content of the package.
    
    In which directory do you want to install the binary files?
    [/usr/bin]
    
    What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
    [/etc/rc.d]
    
    What is the directory that contains the init scripts?
    [/etc/rc.d/init.d]
    
    In which directory do you want to install the VMware Management Interface
    files? [/usr/lib/vmware-mui]
    
    The path "/usr/lib/vmware-mui" does not exist currently. This program is going
    to create it, including needed parent directories. Is this what you want?
    [yes]
    
    In which directory would you like to install the documentation files?
    [/usr/lib/vmware-mui/doc]
    
    The path "/usr/lib/vmware-mui/doc" does not exist currently. This program is
    going to create it, including needed parent directories. Is this what you want?
    [yes]
    
    The installation of VMware Management Interface 1.0.1 build-29996 for Linux
    completed successfully. You can decide to remove this software from your system
    at any time by invoking the following command:
    "/usr/bin/vmware-uninstall-mui.pl".
    
    Before running VMware Management Interface for the first time, you need to
    configure it by invoking the following command:
    "/usr/bin/vmware-config-mui.pl". Do you want this program to invoke the command
    for you now? [yes]
    
    Configuring httpd.conf to run Apache as:
    User: nobody and Group: nobody
    
    Set the number of minutes before a http session times out. (This is the length
    of time before someone connecting to VMware Management Interface will be logged
    out) [60]
    
    Generating SSL Server Certificate
    
       Starting httpd.vmware:                                  [  OK  ]
    The configuration of VMware Management Interface completed successfully.
    
    [root@zaphod vmware-mui-distrib]#
    
    1. The install should have started it ok, you can now browse to http://your.host.name:8222/

    Both the web interface and vmware itself chkconfig themselves on so they should run ok at boot. I rebooted my machine now to check all was well.


  • Adjusting prefs from the command line

    To adjust the various system preferences from the command line you need the systemsetup utility which ships with OSX Server although I’ve found some versions of OS X client have it installed in /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support. On my G5 with Tiger (10.4.8) installed I used systemsetup-tiger and on my iMac (Intel) that was missing so I used systemsetup-panther which also worked.

    You can adjust all sorts of things with the tool -help shows you all the options, I wanted to adjust sleep times. Below is an example session, showing the settings before and after I had made the change

    # ./systemsetup-panther -getsleep
    Sleep: Computer sleeps after 10 minutes
    Sleep: Display sleeps after 10 minutes
    Sleep: Disk sleeps after 10 minutes
    # sudo ./systemsetup-panther -setcomputersleep 60
    setcomputersleep: 60
    # ./systemsetup-panther -getsleep
    Sleep: Computer sleeps after 60 minutes
    Sleep: Display sleeps after 10 minutes
    Sleep: Disk sleeps after 10 minutes
    


  • Todays del.icio.us bookmarks


  • SystemRescueCd PXE Boot

    I’ve moved this post into a page specifically about the SystemRescueCd which can be found here (Broken link /systemrescuecd-network-boot/).


  • Linux on Compaq EVO T20

    I’ve recently spent some time trying to get linux running out of the embedded firmware on a Compaq Evo T20. I’ve succeeded with a lot of help from this page. I’ll be adding some notes on how I did it and how I used ThinStation to get the NX client in the firmware.


  • Network aliases

    To add an alias to a network device on freebsd do this:

    [root@book etc]# ifconfig fxp0 alias 10.0.0.2 netmask 255.255.255.255
    

    Note: The netmask is always /32

    To remove one do this:

    # ifconfig fxp0 -alias 10.0.0.2
    

    To add these to rc.conf do something like:

    ifconfig_fxp0="inet 10.0.0.1  netmask 255.255.255.240"
    ifconfig_fxp0_alias0="10.0.0.2 netmask 255.255.255.255"
    


  • RPM spec file conditionals

    I never remember how to do this, if you need vendor specific bits inside a spec file (like init scripts etc) you can use this to do different things depending on vendor.

    %if "%{_vendor}" == "suse"
      # Suse specific stuff
    %endif
    %if "%{_vendor}" == "redhat"
      # Redhat specific stuff
    %endif
    

    If…else works like this:

    %if "%{vendor}" == "suse"
      # Suse specific stuff
    %else
      # Redhat specific stuff
    %endif