Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
User Journal

Journal brlancer's Journal: Old projects long abandoned

Minutes turn to hours, hours to days, days to weeks and months and years and generations. Somewhere in there I'd like to finish a project I start.

Many moons ago, back when I was using dial-up, I had created a FreeBSD box to handle all the stuff you normally get from a appliance from Linksys or D-Link. As small as my free time may be, my free cash is smaller. So I built this thing to handle PPP, routing, NAT, DHCP, firewalling, etc. It was pretty sweet, considering I hadn't messed with any of it before, including FreeBSD.

So it was mostly good--I kept it patched, but not updated, and it lacked some nice extras. I eventually took the time to set up a local NTP service, but I still wanted to upgrade to a newer base OS and set up a DNS server for both caching and local hosts. A few weekends ago, however, I took the time.

Because the box was my router, a lengthy downtime was a no-no. CD upgrade was out. I wanted to cvsup the box, but I kept having trouble getting the sources. I had written the supfile properly, but I think the problem was I hadn't properly "gotten" the source via sysconfig. I started over, nuking my /usr/src directory (saved my kerner configs first) and re-running sysconfig. I let it use all the defaults, as I think one of my tweaks is what kept it from ever updating properly. Once sysconfig was finished, I ran cvsup and my source tree was solid. I thought the make buildworld was lengthy, but I had no idea. I ran make buildkernel and make installkernel (just a default kernel, to test), but it complained because I didn't have an smmsp user. I had to run make mergemaster to modify the /etc config files; what a pain in the ass.

I feel the need to note that make mergemaster sucks balls. In Debian, apt knows if the file is the one that was installed as part of the old package; FreeBSD can't tell you if you've modified it or not so it PROMPTS YOU EVERY TIME to compare the files. SLOW.

So after the quick make mergemaster, make kernelinstall went through properly; reboot. System comes up, all good. Reboot into single-user mode, run the full make mergemaster and wait, then make installworld. mergemaster is slow because you have to run through every config file under the sun, but I can't imagine what the excuse was here. It took a good hour. Once this was done, I booted into multi-user mode and things were good. All in all, it didn't take much time outside when I was running installworld in single-user mode.

So now I have a nifty FreeBSD 4.10 box (because upgrading to 5.3 wasn't in my game plan). Next step was DNS. There is a port of BIND (two actually, one v8 and one v9), but there is also one installed by default. I pretty much followed the FreeBSD manual word for word, set up caching to start and then wrote forward and reverse DNS records for my local domain. The only problem I had was that named wouldn't start, but I wasn't getting any real errors. Apparently, named fails if it can't log; no errors, nada. I had to strace and take some educated guesses. It didn't like my syslog config so it puked. I wrote an entry into my config file to log to it's application directory and all was kosher.

Writing this up took an incredible amount of time on its own. But I feel very accomplished that I could cross these two items off my "Get to it eventually" list.

Never ask two questions in a business letter. The reply will discuss the one you are least interested, and say nothing about the other.

Working...