I previously wrote about my fiddling with lcdproc and tip to get characters to display. After much initial failure, I finally got a working LCDd.conf for lcdproc. For the impatient, here it is:
[server]
Driver=MtxOrb
DriverPath=/usr/local/lib/lcdproc/
Hello=" Hello World "
Hello=" 2013 "
ServerScreen=no
Heartbeat=off
[MtxOrb]
Device=/dev/cua01
Size=16x2
Type=lkd
Speed=19200
hasAdjustableBacklight=no
The device is an old Matrix Orbital LK162-12. The technical reference is here. It took me some time with ktrace/kdump and the technical reference to figure out that the LCDd.conf Type= should be lkd, not the default lcd. It looks like the LCDd at every refresh interval sends out "backlight on," "GPO off," and "underline off," commands. On this screen, the "GPO off," command requires an extra argument as it has 6 GPOs, so the 0xFE part of the "underline off," command was getting chomped, leaving a bare K on the LCD in various places.
Friday, September 13, 2013
Tuesday, September 10, 2013
More on frankenrouter (the Netscaler reboot as OpenBSD)
Well, I had to shelf this project for a while, but back in full force, today.
Today's problem took me most of the day to figure out. This is yet another one of the "both CARP servers are masters," issues that seem to plague CARP newbies.
If you're configuring from /etc/hostname.carp0, and you like to bust your ifconfig statements into multiple lines, you may find that you need to put all the little CARP things ahead of the plumbing of the actual IP address. To wit, this config just wasn't working for me:
inet 192.168.0.1 255.255.255.0 192.168.0.255
-inet6
carpdev em2
vhid 1
pass gandalf
However, this one works fine:
-inet6
carpdev em2
vhid 1
pass gandalf
inet 192.168.0.1 255.255.255.0 192.168.0.255
Today's problem took me most of the day to figure out. This is yet another one of the "both CARP servers are masters," issues that seem to plague CARP newbies.
If you're configuring from /etc/hostname.carp0, and you like to bust your ifconfig statements into multiple lines, you may find that you need to put all the little CARP things ahead of the plumbing of the actual IP address. To wit, this config just wasn't working for me:
inet 192.168.0.1 255.255.255.0 192.168.0.255
-inet6
carpdev em2
vhid 1
pass gandalf
However, this one works fine:
-inet6
carpdev em2
vhid 1
pass gandalf
inet 192.168.0.1 255.255.255.0 192.168.0.255
Tuesday, July 30, 2013
Turning an old NetScaler into something useful
A couple of years ago, we picked up a pair of used NetScaler NS7000s. We had them in service for a while, but eventually they became obsolete - we didn't have a NetScaler support contract, and there were new features we needed. So, we replaced the old NetScalers with a different solution.
Last week, I hit upon an idea for a new project, and the NS7000s with their 8 onboard NICs was a perfect hardware platform for me.
For those that don't know, NetScalers run FreeBSD under the hood. These particular units were running something from the 4.x series. For comparison, the current release version as of this post is 9.1.
These units boast a single Pentium 4 2.8GHz processor and 1 GB of RAM. They have dual onboard SATA ports, a single hot-plug 3.5 inch hard drive bay, and the primary IDE is jacked into a CompactFlash reader. There is also an onboard CF jack, but I have not fiddled with it; presumably, this is the second IDE channel. The two COM ports are attached to the serial console and the LCD display, respectively.
Step one was to try and recover any useful information from the old hard drives and CF cards. Bit rot had set in, though, and of the 4 units, only one hard drive was readable. Not much useful stuff, there - apparently the NetScaler products have root on the CF and /var on the hard drive.
So, I sourced new hard drives and CF cards and got to work.
Day one, I downloaded OpenBSD 5.3 x86 and performed a clean install to a hard drive. I made a little /etc/rc.local script goodness to capture the output of dmesg to a text file.
I placed the hard drive into one of the NetScalers and fired it up. I was a little concerned, initially, that the LCD still said Booting... So, I let the unit sit for about an hour. Then, I took the hard drive back out and mounted it up somewhere that I could look at the dmesg output.
SUCCESS! The box booted clean and I could see em0 - em7 listed.
Next step was to identify each interface and get one plumbed up. This was something of a trial-and-error effort. I eventually gave up, broke down and purchased a new serial cable so I could get on the console.
Once logged in to the console, building the physical jack to interface map was pretty easy. On both units, I got the same map, which looks like this (YMMV):
The next piece was to get NS7000 Booting... off the LCD console. Luckily, it was a well documented piece of hardware from Matrix Orbital. Unfortunately, I haven't been able to get any of the sample code or LCDproc to work with the unit, but I can use tip to connect via the terminal and put characters on the display, so it's just a matter of time.
Last week, I hit upon an idea for a new project, and the NS7000s with their 8 onboard NICs was a perfect hardware platform for me.
For those that don't know, NetScalers run FreeBSD under the hood. These particular units were running something from the 4.x series. For comparison, the current release version as of this post is 9.1.
These units boast a single Pentium 4 2.8GHz processor and 1 GB of RAM. They have dual onboard SATA ports, a single hot-plug 3.5 inch hard drive bay, and the primary IDE is jacked into a CompactFlash reader. There is also an onboard CF jack, but I have not fiddled with it; presumably, this is the second IDE channel. The two COM ports are attached to the serial console and the LCD display, respectively.
Step one was to try and recover any useful information from the old hard drives and CF cards. Bit rot had set in, though, and of the 4 units, only one hard drive was readable. Not much useful stuff, there - apparently the NetScaler products have root on the CF and /var on the hard drive.
So, I sourced new hard drives and CF cards and got to work.
Day one, I downloaded OpenBSD 5.3 x86 and performed a clean install to a hard drive. I made a little /etc/rc.local script goodness to capture the output of dmesg to a text file.
I placed the hard drive into one of the NetScalers and fired it up. I was a little concerned, initially, that the LCD still said Booting... So, I let the unit sit for about an hour. Then, I took the hard drive back out and mounted it up somewhere that I could look at the dmesg output.
SUCCESS! The box booted clean and I could see em0 - em7 listed.
Next step was to identify each interface and get one plumbed up. This was something of a trial-and-error effort. I eventually gave up, broke down and purchased a new serial cable so I could get on the console.
Once logged in to the console, building the physical jack to interface map was pretty easy. On both units, I got the same map, which looks like this (YMMV):
PHY | INTI was using a gigabit switch to talk to the unit. All of the interfaces showed up at 1000baseT when I plugged them in, and herein lies the first real curiosity of this platform. I was only able to get 1/7 and 1/8 to ping reliably. The other ports had major packet loss and tremendous response times. A close inspection of the front bezel shows jacks 1/1 - 1/6 are marked FE (fast ethernet), with 1/7 and 1/8 marked GB. With this in mind, I tried massaging the interfaces down to 100baseTX and voila! Working ports 1/1 - 1/6.
---------
1/1 | em3
1/2 | em0
1/3 | em5
1/4 | em4
1/5 | em7
1/6 | em6
1/7 | em1
1/8 | em2
The next piece was to get NS7000 Booting... off the LCD console. Luckily, it was a well documented piece of hardware from Matrix Orbital. Unfortunately, I haven't been able to get any of the sample code or LCDproc to work with the unit, but I can use tip to connect via the terminal and put characters on the display, so it's just a matter of time.
Labels:
FreeBSD,
LCD,
Matrix Orbital,
NetScaler,
OpenBSD
Subscribe to:
Posts (Atom)