Skip to main content

Command Palette

Search for a command to run...

freebsd 15 on a dell latitude e6410

Updated
5 min read
freebsd 15 on a dell latitude e6410

I recently decided to install FreeBSD on a laptop that is now itself a late teenager, a dell latitude e6410 (specs). I am indeed a masochist. this was one of my father's old work computers that I rediscovered in an "electronics recycling" bucket in my basement. it had an oversized battery that couldn't hold a charge, a lot of dust, and an ancient version of windows that I didn't bother to play around with (perhaps a poor decision for bios reasons).

I'm not sure that it was necessary functionality wise but I wanted to make sure I had the latest bios on it before I did too much playing around with the operating system. the version I found it with was A04 and the last version dell produced was A17, so that seemed like a thing I should take care of. in order to do any bios update though I needed a working battery. in the spirit of "in for a penny, in for a pound" I ended up buying a new battery, a solid state hard drive to replace the spinning disk serial ata one it had, and more ram to bump it from 4gb to a whopping 8gb (it's just as good as a macbook neo now). ebay to the rescue for those parts, around $100 delivered.

the bios saga

it turns out you can't just go from A04 to A17. serves me right for having ambition I guess. I solved this problem with FreeDOS 1.4 LiteUSB on a 16gb usb stick. the usb stick being that size meant it had room for more applications, which is fortunate since I needed two bios utilities, A09 and A17. I booted freedos, chose the menu item that was not install, and then ran the A09 executable from the C:\ prompt. once that completed I rebooted into freedos again, again chose not to do an installation, and then ran the A17 executable. I'm sure that did something for me but honestly having done it now I have no idea what that something is. checkbox checked I guess.

freebsd

I hadn't used freebsd in a while but I've long had a fondness for it and the other BSDs. the ports system has always been fantastic, rc.d is far more sensible than popular linux init systems like systemd, plus the historic lineage makes for quite the usable and interesting system. the laptop wiki indicated I shouldn't have too much trouble getting it working.

the main problem has been that it has an nvidia graphics card and the drivers for that are very old. it seems like there were some hardware configurations that also had an intel video card but sadly this one is nvidia only. it's workable but you sacrifice some stability as a result. I've never had X hard lock up a system but it's happened multiple times here. that said, going from vesa 1024x768 to 1280x800 is totally worth it.

wireless

before jumping in with the install I wanted to test the wireless networking since I wasn't going to drag an ethernet cable around the house. using the freebsd usb disk image as a live system I switched to a VT and did the following:

ifconfig wlan create wlandev iwn0 ssid MYNETWORK up
wpa_passphrase MYNETWORK MYPASSWORD > /tmp/wpa_supplicant.conf
wpa_supplicant -i wlan0 -c /tmp/wpa_suppicant.conf
bsdconfig

there is probably a better way to do that but it gave me confidence that I was going to be able to use the laptop as a laptop.

pkg notes

the pkg system works well but quarterly is somewhat limited compared to what I was expecting. I ended up switching to latest via a simple change of two strings in /etc/pkg/FreeBSD.conf. after that it was just a matter of:

pkg update
pkg upgrade
pkg clean

things I ended up installing:

bash
chromium
git
nvidia-driver-340
nvidia-kmod-340
opendoas
xfce

using the dvd

I wanted users who were not root to be able to use the DVD/CD-ROM drive so I added the following to /etc/devfs.conf:

link    cd0    cdrom
link    cd0    dvd
own     cd0    root:operator
perm    cd0    0660

and to /etc/sysctl.conf:

vfs.usermount=1

xfce and nvidia

to load the nvidia driver (the kmod mentioned in the above pkg list) at boot you can do the following to add an entry to /etc/rc.conf:

sysrc kld_list="nvidia.ko"

note that in this case I'm using = and not += because this is a fresh install. if you're already using the OS for something and have some kld_list already defined you'd want to use the latter. to get X using the proper device I created the file /usr/local/etc/X11/xorg.conf.d/20-nvidia.conf with the following contents:

Section "Device"
    Identifier "NVIDIA Card"
    Driver     "nvidia"
    VendorName "NVIDIA Corporation"
    Option     "NoLogo" "true"
EndSection

Section "ServerFlags"
    Option "IgnoreABI" "true"
EndSection

for my user account I created a .xinitrc in my $HOMEDIR that contains:

. /usr/local/etc/xdg/xfce4/xinitrc

from there startx works.

the laptop integration testing project

an announcement from the freebsd project itself seems like a good way to finish this off for now. I've gone ahead and added my scrappy old dell to the mix, although it should be noted they did say "recent laptop hardware would be very helpful" in their contribution docs. ah well, you can't win them all.