diff --git a/environment-setup/femtofox.chroot b/environment-setup/femtofox.chroot index 4b18cc7..6e7676a 100644 --- a/environment-setup/femtofox.chroot +++ b/environment-setup/femtofox.chroot @@ -9,23 +9,19 @@ echo "tmpfs /run tmpfs rw,nodev,nosuid,size=32M 0 0" | tee -a /etc/fstab #echo "deb [arch=all signed-by=/etc/apt/keyrings/meshtastic-deb.asc] https://meshtastic.github.io/deb stable main" | tee /etc/apt/sources.list.d/meshtastic-deb.list >/dev/null echo "Removing netdevice rules..." - ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules echo "Setting up kernel modules..." - touch /lib/modules/5.10.160/modules.order touch /lib/modules/5.10.160/modules.builtin depmod -a 5.10.160 if [[ $? -eq 2 ]]; then echo "Error, step failed..."; fi echo "Setting localtime to UTC..." - rm /etc/localtime ln -sf /usr/share/zoneinfo/UTC /etc/localtime echo "Installing packages..." - apt update DEBIAN_FRONTEND=noninteractive apt install -y --option Dpkg::Options::="--force-confold" linux-firmware wireless-tools git python3.10-venv libgpiod-dev libyaml-cpp-dev libbluetooth-dev openssl libssl-dev libulfius-dev liborcania-dev evtest screen avahi-daemon protobuf-compiler telnet fonts-noto-color-emoji ninja-build chrony qrencode software-properties-common python-is-python3 python3.10-venv lsof spi-tools python3-luma.oled samba if [[ $? -eq 2 ]]; then echo "Error, step failed..."; fi @@ -41,17 +37,17 @@ echo "Installing dependencies for meshing-around and meshtastic cli..." pip3 install requests pyephem pytap2 meshtastic pypubsub geopy maidenhead beautifulsoup4 dadjokes schedule wikipedia googlesearch-python if [[ $? -eq 2 ]]; then echo "Error, step failed..."; fi -echo "Setting MOTD..." +echo "Adding Samba configuration..." # add it manually so we're always using the most up to date smb.conf file template from the package +echo -e "\n[home]\npath = /home/femto\nbrowsable = yes\nwritable = yes\nread only = no\ncreate mask = 0775\ndirectory mask = 0775\nvalid users = femto" | sudo tee -a /etc/samba/smb.conf > /dev/null && sudo systemctl restart smbd +echo "Setting MOTD..." mv /etc/update-motd.d/10-help-text /etc/update-motd.d/10-help-text.bak mv /etc/update-motd.d/60-unminimize /etc/update-motd.d/60-unminimize.bak echo "Setting hostname to femtofox..." - echo "femtofox" | tee /etc/hostname > /dev/null echo "Configuring autostart of systemd services..." - systemctl enable button systemctl enable meshtasticd systemctl enable femto-runonce.service @@ -78,7 +74,6 @@ systemctl disable veritysetup.target systemctl disable systemd-pstore.service echo "Adding femto and pico users/groups..." - groupmod -n femto pico usermod -l femto pico usermod -aG sudo,input femto @@ -86,7 +81,6 @@ echo "femto ALL=(ALL:ALL) ALL" | tee /etc/sudoers.d/femto > /dev/null chmod 440 /etc/sudoers.d/femto # this seems messy, user:group should be set cleanly and not corrected after? OSC: somethings were owned my pico from factory - find / -group pico -exec chgrp femto {} \; 2>/dev/null find / -user pico -exec chown femto {} \; 2>/dev/null usermod -d /home/femto -m femto @@ -97,6 +91,5 @@ usermod -a -G tty femto usermod -a -G dialout femto echo "Cleaning up chroot..." - apt clean && rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* && rm -rf /var/tmp/* && find /var/log -type f -exec truncate -s 0 {} + && : > /root/.bash_history && history -c exit diff --git a/foxbuntu/sysdrv/out/rootfs_uclibc_rv1106/usr/local/bin/femto-runonce.sh b/foxbuntu/sysdrv/out/rootfs_uclibc_rv1106/usr/local/bin/femto-runonce.sh index 195bcd6..be7cbe1 100755 --- a/foxbuntu/sysdrv/out/rootfs_uclibc_rv1106/usr/local/bin/femto-runonce.sh +++ b/foxbuntu/sysdrv/out/rootfs_uclibc_rv1106/usr/local/bin/femto-runonce.sh @@ -72,7 +72,7 @@ if ! grep -q "eth0" /etc/network/interfaces; then # static mac address for onboard ethernet (castellated pins) allow-hotplug eth0 iface eth0 inet dhcp -hwaddress ether $(awk '/Serial/ {print $3}' /proc/cpuinfo | tail -c 11 | sed 's/^\(.*\)/a2\1/' | sed 's/\(..\)/\1:/g;s/:$//') +hwaddress ether $mac EOF else log_message "eth0 already exists in /etc/network/interfaces, skipping" diff --git a/foxbuntu/sysdrv/out/rootfs_uclibc_rv1106/usr/local/bin/femto-software.sh b/foxbuntu/sysdrv/out/rootfs_uclibc_rv1106/usr/local/bin/femto-software.sh index f30cfb4..30a4da9 100755 --- a/foxbuntu/sysdrv/out/rootfs_uclibc_rv1106/usr/local/bin/femto-software.sh +++ b/foxbuntu/sysdrv/out/rootfs_uclibc_rv1106/usr/local/bin/femto-software.sh @@ -11,7 +11,6 @@ install() { echo "Installing $($package_dir/$1.sh -N)..." # Run the installation script, capturing the output and displaying it in real time output=$($package_dir/$1.sh -i) - echo $output install_status=$? # Capture the exit status of the eval command user_message=$(echo "$output" | awk '/user_message: / {found=1; split($0, arr, "user_message: "); print arr[2]; next} found {print}' | sed '/^$/q') # grab the user_message, if present #output=$(echo -e "$output" | sed '/user_message: /,$d') # remove the user message from the detailed output @@ -37,7 +36,7 @@ uninstall() { dialog --no-collapse --colors --title "$title" --beep --msgbox "\n\ZuUninstallation of $($package_dir/$1.sh -N) successful!\Zn$([ -n "$user_message" ] && echo "\n\n$user_message")\n\nLog:\n$(echo -e "$output")" 0 0 # if there's a user_message, display it with two preceeding line breaks else dialog --no-collapse --colors --title "$title" --beep --msgbox "\n\ZuUninstallation of $($package_dir/$1.sh -N) FAILED!\Zn\n\n$user_message\n\nLog:\n$(echo "$output")" 0 0 # if there's a user_message, display it with two preceeding line breaks - fi + fi } upgrade() {