FreeBSD Display Information About The System Hardware

last updated in Categories FreeBSD, Hardware, Howto

FreeBSD comes with different utilities, which can be use to gathered the information as per your needs. uname command is use to print system information. dmesg command is use to print kernel ring buffer information. sysctl command is use to configure kernel parameters at runtime as well as to read hardware information.

Following list summaries, all the command you need to gather FreeBSD hardware information.

1) Determining the Hardware Type/platform:
# uname -m
2) Determining machine processor architecture:
# uname -p
3) Determining FreeBSD release level:
# uname -r
Generally, following command is use to get all info at a time:
# uname -mrs

FreeBSD 5.0-RELEASE i386

4) Determining CPU information such as speed, make etc
# dmesg | grep CPU

CPU: Pentium 4 (1716.41-MHz 686-class CPU)
acpi_cpu0:  on acpi0
acpi_cpu: CPU throttling enabled, 8 steps from 100% to 12.5%

5) Determining real and available memory to FreeBSD:
# dmesg | grep memory

real memory  = 201326592 (192 MB)
avail memory = 188555264 (179 MB) 

Alternatively, try following command to grab memory information:
# sysctl -a | grep hw.*mem
# sysctl -a | grep mem


hw.physmem: 194985984
hw.usermem: 167641088
hw.cbb.start_memory: 2281701376

Note systcl has more info, just type the sysctl command to see rest of all information:
# sysctl -a | less
6) Determining how long a system has been up:
# uptime
7) Determining when a system was last rebooted or shutdown:
# last -1 reboot
# last -1 shutdown

8) Determining swap file system usage
# swapinfo -k
9) Determining who is logged in and what they are doing. Following all commands can be used. users command displays the list of all logged in users only.
# w
# who
# users

10) Find out when user was last logged in – You can use last command as follows:
# last user-name
(a) To find out user vivek was last logged, enter:
# last vivek

See FreeBSD getsysinfo.bash script. It is use to find general FreeBSD system information such as, hostname, OS version, Kernel version, Processor/CPU, Total RAM, System load, network interface, total logged in users, Hard disks, Runlevel etc. Make sure your read the detailed installation instruction.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

9 comment

  1. Note that the “dmesg” information you are referring to is that retrieved on boot. After a while of system usage, that data can be “lost” as it’s replaced by other information that is appended to the buffer.

    For this reason, the usual startup scripts copy the ‘dmesg’ output on bootup to /var/run/dmesg.boot – you’d be safer grepping your information from that file

  2. adding to what jamie said …

    a more reliable way to find say the number of CPU’s will be

    cat /var/run/dmesg.boot | grep CPU


  3. If you only want to know the number of CPUs, try this:

    # sysctl -a | grep hw.ncpu
    hw.ncpu: 8

  4. Salamo ALikom
    what i have to type if i want full system hardware like sound card ,video card etc .
    thx for the tutorial .

  5. dmesg not work if system has few days and more uptime!
    /var/log/messages* overwrited too!
    I want full report of hardware on the system. How may I do? (ls /dev and pciconf -vl, but is not full report 🙁 )
    May I restart utility like dmesg?

  6. There’s a utility called dmidecode (available in ports, even), which will provide way more information that you are probably expecting, including motherboard mfg & model. I imagine it’s dependent on the motherboard mfg properly providing this information in whatever data structures this utility queries, but that shouldn’t be any surprise.

    It was able to tell me (on the 2nd & 3rd “Handles”) that I have a Supermicro X7SBi. Quite handy when you want to order the IPMI module for it, and it’s located 45min away. for more information.

    Have a question? Post it on our forum!