Loading...
 

HP Elitebook Setup


#--------------------------------------------------------------------------------
# HP Elitebook BIOS upgrade
HP Elitebook 2570p (i7 3520M)      2x8GB RAM  BIOS v66 2 TB SSD, 2 TB 2nd
HP Elitebook 2560p (i7 2620M) x2   2x8GB RAM  BIOS v69 2 TB SSD, 2 TB 2nd (x2; on each)
  spare: 5x4 GB RAM, 150 GB Win8 disk, 2 TB spare

https://h30434.www3.hp.com/t5/Notebook-Hardware-and-Upgrade-Questions/Latest-BIOS-for-HP-EliteBook-2560p/td-p/8149281
 but requires windows running on the machine to upgrade.
 https://ftp.hp.com/pub/softpaq/sp85501-86000/sp85526.exe  2560p v66		# Likely last ever; from 2018
 https://ftp.hp.com/pub/softpaq/sp85001-85500/sp85500.exe  2570p v69		# Likely last ever; from 2018
 
Never could get to work using windows-B or other mechanisms; restored to using Win8 disk and running Windows utility

#--------------------------------------------------------------------------------
# Install Ubuntu Desktop on Elitebook
Install Ubuntu from USB Stick on Legacy Boot; then change to UEFI w/out CRM to boot off new disk
2570 needs to add custom boot order ahead of hardisk: \EFI\Ubuntu\shimx64.efi (or remove EFI/BOOT/fbx64.efi )
  (see https://askubuntu.com/questions/1417217/reset-system-boot-loop-after-installing-ubuntu-22-04-lts-on-hp-probook)

#--------------------------------------------------------------------------------  
# Remove SNAPD and all its apps
lsblk
To remove SNAP and /dev/loop* ent ries:
sudo systemctl disable snapd.service
sudo systemctl disable snapd.socket
sudo systemctl disable snapd.seeded.service
sudo systemctl mask snapd.service			# creates symlink /etc/systemd/system/snapd.service -> /dev/null
sudo apt purge snapd
sudo apt autoremove
sudo rm -rf /etc/systemd/system/snapd* /etc/systemd/system/snap-* var-snap-firefox*mount		# all the /dev/loop mount scripts
sudo umount /var/snap/firefox/common/host-hunspell							# One mount seemingly left over
sudo rm -rf /var/snap											# Only happens when umounts done
sudo apt-mark hold snapd				# https://askubuntu.com/a/1345401/1744185
sync ; sync ; reboot

# To get SNAPD back:
sudo rm -f /etc/systemd/system/snapd		# The symlink created earlier
sudo apt install snapd				# Turns off the hold

#--------------------------------------------------------------------------------
# Add Google Chrome
cd /usr/local
sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
# rm -f google-chrome-stable_current_amd64.deb

#--------------------------------------------------------------------------------
# Add second H			# https://askubuntu.com/questions/125257/how-do-i-add-an-additional-hard-drive
sudo cgdisk /dev/sdb 		# if not yet partitioned)
sudo mkfs -t ext4 /dev/sdb1 	# if not yet formatted)  Capture UUID there or ...
sudo blkid /dev/sdb1		# To get UUID for partition
sudo vi /etc/fstab
  UUID=5d6c8f68-dcc8-4a91-a510-9bca2aa71521	/backup	ext4	defaults	0	0		# Used to be /dev/sdb1 instead of UUID
sudo mkdir /backup
sudo mount /backup

#--------------------------------------------------------------------------------
# Add ssh server		# https://www.cyberciti.biz/faq/how-to-install-ssh-on-ubuntu-linux-using-apt-get/
sudo apt install openssh-server
sudo systemctl enable ssh
sudo ufw allow ssh
# If needed later: sudo systemctl start ssh ; stop ssh ; restart ssh

# Add ssh client (if needed)
sudo apt install openssh-client
ssh user@server
scp file user@server:/path
ssh user@server who		# To run commands on remote server without creating a terminal connection

#--------------------------------------------------------------------------------
# Add static IP reservation
goto 10.1.10.1, advanced setup, ....
add reservation, select laptop currently on, shoose 16-18 for WebServ1-3
Apply ; reboot router

#--------------------------------------------------------------------------------
# To prevent laptop from sleeping when closing lid or over set period of time
sudo add-apt-repository universe
sudo apt install gnome-tweaks
start tweaks and disable "suspent on lid close"
sudo vi /etc/systemd/logind.conf
Uncomment and set:
  HandleLidSwitch=ignore
  HandleLidSwitchExtendPower=ignore
  LidSwitchIgnoreInhibited=no
GUI settings: power: auto-suspend turned off

#--------------------------------------------------------------------------------
# Turn off Wifi when cable connected
sudo apt install tlp
sudo vi /etc/tlp.conf
 Uncomment and possibly change value as shown:
 WIFI_PWR_ON=off
 WOL_DISABLE=N
 DEVICES_TO_DISABLE_ON_STARTUP=( )       # Remove wifi
 DEVICES_TO_ENABLE_ON_STARTUP=( wifi )   # simply uncomment
 DEVICES_TO_DISABLE_ON_SHUTDOWN=(  )     # simply uncomment
 DEVICES_TO_ENABLE_ON_AC=( wifi )        # simply uncomment
 DEVICES_TO_DISABLE_ON_BAT=(  )          # Remove wifi
 DEVICES_TO_DISABLE_ON_LAN_CONNECT=(  )  # Add wifi
 DEVICES_TO_ENABLE_ON_LAN_DISCONNECT=( wifi )   # Add wifi
 
#--------------------------------------------------------------------------------
# Disable MOTD via SSH
sudo vi /etc/pam.d/sshd
  comment out two lines w/ motd: session optional pam.motd ....

# Install LXC/LXD container software (vs Docker)		# https://ubuntu.com/server/docs/containers-lxc

#--------------------------------------------------------------------------------
sudo apt install net-tools -y   # to get ifconfig
sudo apt install cifs-utils -y  # to get SMB mount capability

#--------------------------------------------------------------------------------
# Install Docker     https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

# Install docker engine
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

#--------------------------------------------------------------------------------
# Install Jellyfin version (see https://jellyfin.org/docs/general/installation/container#docker)  (not tried)

#--------------------------------------------------------------------------------
# Install Jellyfin apt version
sudo apt install jellyfin-server
# sudo apt update ; sudo apt upgrade  # for jellyfin-web jellyfin-server

#--------------------------------------------------------------------------------
# Install Jellyfin (manual automatic; not docker) (see https://jellyfin.org/docs/general/installation/linux#repository-automatic)
wget -O -  https://repo.jellyfin.org/install-debuntu.sh | sudo bash

sudo systemctl status jellyfin.service  or  sudo service jellyfin status (vs start, stop)

# Have to locally mount any media repositories that the Jellyfin server relies on ; gives local path for setup
sudo mkdir /media/cd_dvd ; sudo mkdir /media/family
sudo cat >> /etc/fstab <<EOF
//Media.local/cd_dvd    /media/cd_dvd cifs credentials=/opt/jellyfin/.smbcredentials,iocharset=utf8 0 0
//Media.local/family    /media/family cifs credentials=/opt/jellyfin/.smbcredentials,iocharset=utf8 0 0
EOF
sudo vi /opt/jellyfin/.smbcredentials
username jellyfin
password xxyyzzz  (see KeePass)
sudo mount -a

On another machine, web access the Jellyfin setup panel: 
http://10.1.10.16:8096/ ( account: admin, pass: xxxxxxxxx )
Add libraries
Add users (admin2 w/ db keyword and admin priv, randy, christina, roshan, beth; max 3 login attempts; max 1 user session except 3 for beth; hide only admin2 from panel)
Add TV Tuners (use SchedulesDirect, user: SurplusGadgets, pass: 3MAZXfTPtq2k3tn ; source is Antennae (at very bottom of list))
Add DVR
Add custom css in user Display (only works on web access; not in apps)
# https://www.reddit.com/r/jellyfin/comments/iomrc5/comment/jmq3jpa/?utm_source=reddit&utm_medium=web2x&context=3
@media all {
.homePage .emby-scroller { margin-right: 0; }
.homePage .emby-scrollbuttons { display: none; }
.homePage .itemsContainer { flex-wrap: wrap; }
}
Reorder libraries (user settings, home) Movies, TVShows, Music, LiveTV, Family Photos, Family Music, Family Videos
  And home sections (My Media-small, LiveTV, Continue Watching, Active, Continue listening, Active Recording, None, None)
  Remove Home * groups from Latest Media, etc.


# Add Subtitle feature (see https://gofoss.net/media-streaming/#subtitles)
load / enable "Open Subtitles" plugin
Opensubtitles.org account (RandyHa, Hz6DYhbyQBhMnPHl9wX4$)


# Due to a change to ffpmeg7 from ffmpeg5, needed to switch to aptitude to update jellyfin (https://askubuntu.com/a/510161):
sudo apt-get install aptitude -y
sudo aptitude safe-upgrade


# Required after software update (?) 
#  (debugging where service stops due to failed exit status=143; 
#  ( /opt/jellyfin/log/<latest log>/log shows -- ReadOnly: SQLitePCL.pretty.SQLiteException: attempt to write a readonly database)
  
ln -s /usr/share/jellyfin/web/ /usr/lib/jellyfin/bin/jellyfin-web
# found /opt/jellyfin/config/migrations.ml and some other files owned by root; rest owned by randy.  Changed all to owned by Randy

# Log when trying to restart (sudo service jellyfin start) lists read-only DB error. 
[2024-02-11 20:29:54.309 -05:00] [FTL] [1] Main: Error while starting server.
ReadOnly: SQLitePCL.pretty.SQLiteException: attempt to write a readonly database

# not clear what DB file has lock.  See /opt/jellyfin/data/data/{jellyfin,library}.db and /var/lib/jellyfin/data/{jellyfin,library}/db for possible)
sudo apt-get install sqlite3
sqlite3 dbname.db
pragma locking_mode                 # see https://www.sqlite.org/pragma.html#pragma_locking_mode
   
# Noticed that /opt/jellyfin/data/data/*db files owned by root; but all above owned by Randy. So changed all to owned by Randy.
# Rerun sudo /opt/jellyfin/jellyfin.sh (which is what /etc/systemd/services/jellyfin.services runs) (when halts; ctrl-z then bg)

*******
Noticed only accesible via internetIP:8096 and not from local 10.1.10.16:8096 . And then back to original setup screen to set admin password, etc. -- anybody on internet could do.
*******

# To uninstall when installed via apt-get:
rm -rf /var/lib/jellyfin /etc/jellyfin /opt/jellyfin    # see https://www.reddit.com/r/jellyfin/comments/xhgn2l/how_do_i_fully_reinstall_jellyfin/
sudo apt-get remove jellyfin-web jellyfin-server        # Not listed due to RHEL question but needed on other Debian instead of dnf command given

# But how to leave config settings and data folders to be reused if reinstalling?

# Admin account locked out
# https://jellyfin.org/docs/general/administration/troubleshooting/#unlock-locked-user-account
http://104.185.79.219:8096/  or 10.1.10.16:8096

sudo service jellyfin stop/status/start
*** IMPORTANT -- use /opt/jellyfin/config/system.xml and not /etc/jellyfin/system.xml  to get to system reinitialize screen
cd /opt/jellyfin/data/data
sqlite3 jellyfin.db
UPDATE Users SET InvalidLoginAttemptCount = 0 WHERE Username = 'admin3';
UPDATE Permissions SET Value = 0 WHERE Kind = 2 AND UserId IN (SELECT Id FROM Users WHERE Username = 'admin3');
# https://github.com/jellyfin/jellyfin/blob/master/Jellyfin.Data/Enums/PermissionKind.cs