Dell linux

ssh to reset dell idrac ip address and other variables

I was working on something with an IP conflict, and then locked myself out of routing via the VPN, so the quickest way to do a fix, was to change the IP of my idrac via command line. Apparently, you can do almost everything through command line.

First step is to get onto your idrac, replacing root and IP with your own information. Note, default username and password is root – calvin. If you have a newer idrac, I think starting around idrac8, there is a tab on the server that has the default idrac username and password:

  • ssh root@
  • racadm
  • racadm getniccfg

You should now have a print out of your current configuration for your NIC. To change it, you just do the following:

  • racadm config -g cfgLanNetworking -o cfgNicIpAddress
  • racadm set iDRAC.IPv4.Address

Give it a few seconds, and it should kick you out, and now have the new IP address.

If you want a full subset of the documentation go here:

Otherwise here is a snippet:

% Get all iDRAC settings in a file

racadm get -f config.txt

If you like you can change the contents of config.txt and apply it back to iDRAC
racadm set -f config.txt

% Set password for root user
racadm set iDRAC.Users.2.Password PASSWORD"

% List all ssh keys for root user
racadm sshpkauth -i 2 -v -k all

% Add ssh key to root user
racadm sshpkauth -i 2 -k 1 "CONTENTS OF PUBLIC KEY"

% Delete ssh key for root user
racadm sshpkauth -i 2 -d -k 1

% Get iDRAC IP config

racadm getniccfg
racadm get iDRAC.NIC

% set iDRAC IP

Using config command:
racadm config -g cfgLanNetworking -o cfgNicEnable 1
racadm config -g cfgLanNetworking -o cfgNicIpAddress x.x.x.x
racadm config -g cfgLanNetworking -o cfgNicNetmask
racadm config -g cfgLanNetworking -o cfgNicGateway x.x.x.x
racadm config -g cfgLanNetworking -o cfgNicUseDHCP 0
racadm config -g cfgLanNetworking -o cfgDNSServersFromDHCP 0
racadm config -g cfgLanNetworking -o cfgDNSServer1 y.y.y.y
racadm config -g cfgLanNetworking -o cfgDNSServer2 y.y.y.y
• Using set command:
racadm set iDRAC.Nic.Enable 1
racadm set iDRAC.IPv4.Address x.x.x.x
racadm set iDRAC.IPv4.Netmask
racadm set iDRAC.IPv4.Gateway x.x.x.x
racadm set iDRAC.IPv4.DHCPEnable 0
racadm set iDRAC.IPv4.DNSFromDHCP 0
racadm set iDRAC.IPv4.DNS1 y.y.y.y
racadm set iDRAC.IPv4.DNS2 y.y.y.y

% Set iDRAC DNS Name
racadm set iDRAC.NIC.DNSRacName iDRACNAME

% Set iDRAC domain name
racadm set iDRAC.NIC.DNSDomainName DOMAIN.NAME

% Set iDRAC DNS Server

racadm config -g cfgLanNetworking -o cfgDNSServer1 x.x.x.x
racadm config -g cfgLanNetworking -o cfgDNSServer2 y.y.y.y

% Set Front LCD to hostname
racadm set System.LCD.Configuration 16

% Reset iDRAC to factory defaults
racadm racresetcfg

% Reset/Reboot iDRAC

racadm racreset OPTIONS

Options : soft, hard, cold
racadm serveraction powercycle

% Get Serial number (service tag)
racadm getsvctag

% Get current system information
racadm getsysinfo

% Configure one-time-boot to PXE

racadm set BIOS.OneTimeBoot.OneTimeBootMode OneTimeBootSeq
racadm set BIOS.OneTimeBoot.OneTimeBootSeqDev NIC.Integrated.1-1-1

% Configure persistent Boot Device

racadm config -g cfgServerInfo -o cfgServerBootOnce 0
racadm config -g cfgServerInfo -i cfgServerFirstBootDevice HDD

% Check boot order list
racadm get BIOS.BiosBootSettings.bootseq

% Disable HyperThreading
racadm set BIOS.ProcSettings.LogicalProc Disabled

% Disable OS to iDRAC pass-thru for iDRAC service module (automatically create a pseudo NIC in OS)
racadm set iDRAC.OS-BMC.AdminState Disabled

% Change SNMP public community string
racadm set iDRAC.SNMP.AgentCommunity NEW STRING

% Disable ASR
racadm config -g cfgRacTuning -o cfgRacTuneAsrEnable 0

% Configure Serial redirection

racadm config -g cfgSerial -o cfgSerialConsoleEnable 1
racadm config -g cfgSerial -o cfgSerialBaudRate 115200
racadm config -g cfgSerial -o cfgSerialCom2RedirEnable 1
racadm config -g cfgSerial -o cfgSerialTelnetEnable 0
racadm config -g cfgSerial -o cfgSerialSshEnable 1

to access console via ssh console com2

% Disable Serial On Lan
racadm config -g cfgImpiSol -o cfgIpmiSolEnable 0

% Change Power Profile
racadm set BIOS.SysProfileSettings PerfPerWattOptimizedOs

% Set AC Power Recovery

racadm set BIOS.SysSecurity.AcPwdRcvry Last
racadm set BIOS.SysSecurity.AcPwdRcvryDelay Immediate

% Get RAID physical Disk information

racadm raid get pdisks
racadm raid get pdisks -o (all information)
racadm raid get pdisks -o -p state,size (specific information)

% Get RAID Virtual Disk Information
Racadm raid get vdisks

General Computing

Issues adding passwords on MySQL 10 or newer

I was trying to create a password for a new user on a new install of webmin. I was trying out the latest everything, latest MySQL (MariaDB 10), PHP 7.3, Kernel running on Centos 7. But for some reason, when adding a new SQL user, I kept getting: failed :

Password hash should be a 41-digit hexadecimal number

What I had to do was enter the hash of the password into the new user script. To get the hash, all you have to do it go to command line, enter:

mysql -u root -h localhost -p

Then enter your passwords, and enter your password you want to kick back the hash on:


Which will kick out:


Poof, now you can enter that as your password via your gui, or as an SQL command:

If you would like to read more about it, check here:

General Computing

Need a replacement for speed test by ookla?

I’ve been using, powered by Netflix and it’s been working great. I was getting annoyed with ooklas somewhat intrusive ad tactics and was looking for something a little better. works great and has a great little application door Android as well.

Computer Hardware Windows 10

microsoft surface pro 6 battery bar stuck at 100%

You would think this is a good thing, but no, haha. It’s nice to know what your battery is actually at. While the tablet was logged in, I did this key combo, and that resolved it:

hold volume + and power button for 15 seconds and that should fix it.

Gaming General Computing Video Cards

nvidia color settings resetting after reboot

I am using the nvidia settings to manage some color settings, and as of a recentish anniversary update for windows 10, it kept resetting every reboot. Luckily someone at Tom’sHardware found the resolution, which I am shamelessly posting here with source:

This issue is caused by the WindowsColorSystem scheduled task running at user logon. The NVIDIA driver hooks the user’s logon and then applies the settings, however, the Microsoft scheduled task that initializes the Windows Color System runs just after and loads the default color profile for the monitor (timing issue). Since I prefer to use the driver manufacturers’ control panels to manage my color settings, I disable the “Task Scheduler Library\Microsoft\Windows\WindowsColorSystem\Calibration Loader” task.

Networking vlan

Cisco VLAN is created but still down and unresponsive

I was having issues with my older cisco switch not properly routing new vlans. I saw the interface was down, but the vlan interface existed, and it had an IP bound to it. When I would test ping I would get TTL expired in transit. So I would do something like this:

int vlan 55

ip add

no shut

But it would not ping or resolve! What I had to do was a 

show ip int br

Saw that the vlan didn’t exist and went ran this:

conf t

vlan 55

Then everything started working. This was for an access port, not a trunk port as well. If you still have issues, try a clear arp-cache.

Computer Hardware Gaming

ncase m1 v5 and i9 9900k work great

I just built my new rig, and the temps are solid. When running a stock blend test, I am getting about 70-75C. I could use more fans, I am only running the two on the cooler, and 1 120mm case fan.

ncase m1 v5
nvidia 1080 gtx FE
ADATA SX8200 PCIE NVME GEN3X4 m.2 2280 960GB ASX8200NP-960GT-C
ADATA XPG GAMMIX D10 16GB (2x8GB) DDR4 3200 (PC4 21300) AX4U320038G16-DB10
Intel i9 9900k
be quiet! dark rock TF air cooler
Corsair SF600

The only issue I had was some slight fitment with the be quiet cooler. I made zero alterations, but you can see it’s definitly a little tight with the Ram, as it’s pushing it a smidge. Not enough to worry me though. If I had lower profile sticks, it’d be fine.

Programming python python

namesilo dns update via python script and cron job on pfsense

I am using namesilo for my DNS, and they’ve got a solid little API system for stuff you can do to modify your DNS entries. So I use it as a poor mans dynamic DNS at home. For whatever reason though, their rrid changes every time you do an update, so you need to modify the URL to include the new rrid, which you pull from a dnsupdate api call. Thanks to a coworkers python skills, he wrote me this up, works great. Will only run the API call to update if the IP has changed. There are few things you must change for your own information though, and that is:

DOMAIN.TLDS (example: – there are 4 places to change this, line 11, 31, 32, and 43.
APIKEY (you get this from namesilo when you generate your API key) – there are two spots to change this, in line 11 and 43.
SUBDOMAIN (example: va) – there are two spots to change this: line 11 and 43.
SUB.DOMAIN.TLDS (example: – there are 3 spots to change this, line 30,31, and 32.

#send request to URL
new = requests.get(new_URL)

#print the xml reply, this doesn't need to be pretty
print(new.content)#Must install requests package if you don't have items
# pip install requests

import requests
import xml.etree.ElementTree as ET


#get current IP address from CURRENT_IP_ADDRESS_URL
current = requests.get(CURRENT_IP_ADDRESS_URL).content

print('Current IP address from akamai: %s' % current)
#read xml file
r = requests.get(RECORD_IP_ADDRESS_URL, allow_redirects=True)

xml = ET.fromstring(r.content)

#begin parsing xml for correct host (
for record in xml.iter('resource_record'):
#read host, value, and record_id from current record in xml
host = record.find('host').text
value = record.find('value').text
record_id = record.find('record_id').text

#if host is, process further
if (host == ''):
print(' record IP address: %s' % value)

#if record IP address matches CURRENT_IP_ADDRESS_URL, do nothing
if (value == current):
print('Current IP address matches namesilo record')

#IP addresses don't match, let's update it
print('IP addresses do not match, generating URL to update')

#place the record_id in the url
new_URL = ''+record_id+'&rrhost=va&rrvalue='+current+'&rrttl=3600'

#send request to URL
new = requests.get(new_URL)

#print the xml reply, this doesn't need to be pretty

Now if you are like me, and use pfsense, you have to install a module, which you can do by running these commands in shell:

python2.7 -m ensurepip
python2.7 -m pip install requests
python2.7 -m pip install –upgrade pip

Once you run that, chmod +x your .py script and you are good to go to add the script to a cronjob. I added it via the pfsense cron gui:

*/5 * * * * root /usr/local/bin/python2.7 /usr/local/

Do make sure it’s in a directory you can run as the user, and modify permissions to make sure.


Using plex locally while on openVPN

Do you have a windows server running openvpn, and your plex server at home? If you ever wanted the ability to have plex work local, vice over the internet and back in while you are at home, it’s pretty simple. This will work on any client side openvpn config file. You just need to add this one route in the config file:


replace with whatever your router IP address is, boom, problem solved. There used to be a few other domains you have to route, and some IP addresses you had to keep track of, but now plex made it easy, just works. I had the issue where anytime I had openvpn running and connected on this server, my tablet connected on the same subnet would try to route traffic for my plex application over the internet. When I went to play a video it would say “you are not direct connected, do you want to play this file still”? This resolved it, and running a tcpdump on my firewall, I see the traffic is not leaving, huzzah!

Dell Servers

Dell idrac6 enterprise update – getting Dell iDRAC undefined” and “The webpage cannot be found” errors

I kept getting these errors when I would log into my older idrac 6 cards. You can fixing it by putting IE11 into compatability mode, but I also found it easier to update the idrac to the latest 2.91 version. These were the errors I was getting:

I updated one as far back as 1.43 to this version, no middle version required. Enjoy! I pulled these files right off of dells website. The only file you need to upload is the firming.d6. It was taken out of the ESM_Firmware_MXKG2_WN32_2.91_A00.EXE.

Dell iDRAC Monolithic Release 2.91

If you want to use the virutal console, you will probably have to switch from native to JAVA, as native was not working for me in my old firefox version, or IE11, even with compatibility enabled.