Guide to install ovm on qnap

HardWare

TS-420u (arm)

Specs

Boot

I got one without drive,

I put blank 120GB SSD in

it booted without disk it i was able to see it from my DHCP server

ssh to it worked too (admin:admin)

uname -a
Linux NASxxxxxx 3.4.6 #1 Wed Jun 19 10:48:42 CST 2024 armv5tel unknown

dmesg  | more

[   18.472309] orion_spi orion_spi.0: master is unqueued, this is deprecated
[   18.479303] m25p80 spi0.0: found MC N25Q128, expected m25p128
[   18.485077] m25p80 spi0.0: MC N25Q128 (16384 Kbytes)

cat /proc/partitions
major minor  #blocks  name

  31        0        512 mtdblock0 # 1024+0
  31        1       2048 mtdblock1
  31        2       9216 mtdblock2
  31        3       3072 mtdblock3
  31        4        256 mtdblock4
  31        5       1280 mtdblock5
   8       32  125034840 sdc

Install

From WebGUI I install the supported fw

Then i was able to install the OS to the HDD

 /dev/sdc3               115.9G    361.1M    115.0G   0% /share/HDC_DATA


cat /proc/mdstat
Personalities : [raid1] [linear] [raid0] [raid10] [raid6] [raid5] [raid4]
md4 : active raid1 sdc2[0]
                 530128 blocks super 1.0 [2/1] [U_]

md13 : active raid1 sdc4[0]
                 458880 blocks super 1.0 [4/1] [U___]
                 bitmap: 7/8 pages [28KB], 32KB chunk

md9 : active raid1 sdc1[0]
                 530112 blocks super 1.0 [4/1] [U___]
                 bitmap: 9/9 pages [36KB], 32KB chunk

Tweaked u-boot for recent kernel

ubootcfg -b 0 -f /dev/mtdblock4 -o - | sed "s/^\(bootargs=.*\)/\1 mem=768M/" > /tmp/debian.uboot

grep "^bootargs" /tmp/debian.uboot # Check it looks sane
# bootargs=console=ttyS0,115200 root=/dev/ram initrd=0xa00000,0x900000 ramdisk=34816 mem=768M

ubootcfg -b 0 -f /dev/mtdblock4 -i /tmp/debian.uboot
# Update /dev/mtdblock4 by using /tmp/debian.uboot done

debian-10 installer

time sh flash-debian # rather long (10min?)
Updating MAC address...
Update /dev/mtdblock4 by using /tmp/debian.30950 done
Your MAC address is 00:08:9B:FF:FF:FF
Writing debian-installer to flash... done.
Please reboot your QNAP device.


time apt install -y etckeeper sudo avahi-daemon screen busybox-static mosh time curl

/usr/share/flash-kernel/dtb-probe/kirkwood-qnap
kirkwood-qnap: machine: QNAP TS419 family
kirkwood-ts419-6282.dtb

remap mtd

cat /proc/mtd 

dev:    size   erasesize  name
mtd0: 00080000 00001000 "U-Boot"
mtd1: 00200000 00001000 "Kernel"
mtd2: 00900000 00001000 "RootFS1"
mtd3: 00300000 00001000 "RootFS2"
mtd4: 00040000 00001000 "U-Boot Config"
mtd5: 00140000 00001000 "NAS Config"


curl -k -O https://raw.githubusercontent.com/amouiche/qnap_mtd_resize_for_bullseye/master/qnap_mtd_resize.py
chmod a+x qnap_mtd_resize.py
sudo ./qnap_mtd_resize.py --dry-run
time sudo ./qnap_mtd_resize.py

# TODO should it be done before ?

     grep -o "^mtd[^:]*" /proc/mtd \
        | while read t; do
	mkdir -pv "$t.dir.tmp" 
            time dd if="/dev/$t" \
            < /dev/null \
            | xz -9 \
                 > "./$t.xz" \
            ||:
	rmdir -pv "$t.dir.tmp" 
    done


    cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00080000 00001000 "uboot"
mtd1: 00300000 00001000 "Kernel"
mtd2: 00c00000 00001000 "RootFS1"
mtd3: 00200000 00001000 "Kernel_legacy"
mtd4: 00040000 00001000 "U-Boot_Config"
mtd5: 00040000 00001000 "NAS_Config"

    #
    echo "COMPRESS=xz" | sudo tee -a /etc/initramfs-tools/conf.d/compress

debian 11 upgrade

debian 12 upgrade

WoL was not working, see related chapter

     /usr/sbin/qcontrol buzzer short

      /usr/sbin/qcontrol

time apt-get dist-upgrade # 40min

/dev/sda2       116G  1.6G  109G   2% /

reboot

cat /proc/version 
Linux version 6.1.0-32-marvell (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 Debian 6.1.129-1 (2025-03-06)

omv / setup

apt-get install --yes gnupg wget sudo

wget --quiet --output-document=- https://packages.openmediavault.org/public/archive.key | sudo gpg --dearmor --yes --output "/usr/share/keyrings/openmediavault-archive-keyring.gpg"

cat <<EOF | sudo tee /etc/apt/sources.list.d/openmediavault.list
deb [signed-by=/usr/share/keyrings/openmediavault-archive-keyring.gpg] https://packages.openmediavault.org/public sandworm main
# deb [signed-by=/usr/share/keyrings/openmediavault-archive-keyring.gpg] https://downloads.sourceforge.net/project/openmediavault/packages sandworm main
## Uncomment the following line to add software from the proposed repository.
# deb [signed-by=/usr/share/keyrings/openmediavault-archive-keyring.gpg] https://packages.openmediavault.org/public sandworm-proposed main
# deb [signed-by=/usr/share/keyrings/openmediavault-archive-keyring.gpg] https://downloads.sourceforge.net/project/openmediavault/packages sandworm-proposed main
## This software is not part of OpenMediaVault, but is offered by third-party
## developers as a service to OpenMediaVault users.
# deb [signed-by=/usr/share/keyrings/openmediavault-archive-keyring.gpg] https://packages.openmediavault.org/public sandworm partner
# deb [signed-by=/usr/share/keyrings/openmediavault-archive-keyring.gpg] https://downloads.sourceforge.net/project/openmediavault/packages sandworm partner
EOF

export LANG=C.UTF-8
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none

sudo apt-get update
sudo apt-get --yes --auto-remove --show-upgraded \
    --allow-downgrades --allow-change-held-packages \
    --no-install-recommends \
    --option DPkg::Options::="--force-confdef" \
    --option DPkg::Options::="--force-confold" \
    install openmediavault

omv-confdbadm populate

omv-salt deploy run systemd-networkd
EOF

omv / use

WoL

sudo /sbin/ethtool -s eth0 wol g && sudo  /usr/sbin/qcontrol wol on && sudo poweroff


unit=wol-shutdown
file=/etc/systemd/system/$unit.service

apt-get install ethtool curl sudo
 
url="https://raw.githubusercontent.com/stapelberg/zkj-nas-tools/0c3dcd830be4314074463edc82c9b33dc31b1f18/wol-shutdown.service"
curl -o "$file" "$url" 
sudo sed -e 's|wakeonlan|wol|g' -i $file


systemctl list-units --type=device | grep net-eth | cut -d' ' -f 3
sys-devices-platform-mv643xx_eth_port.0-net-eth0.device
sys-devices-platform-mv643xx_eth_port.1-net-eth1.device


dpkg -L qcontrol | grep .service
# /lib/systemd/system/qcontrol.service
# /lib/systemd/system/qcontrold.service


sudo zile /etc/systemd/system/wol-shutdown.service && sudo systemctl daemon-reload

sudo systemctl enable  /etc/systemd/system/wol-shutdown.service

sudo systemctl status wol-shutdown || sudo journalctl -u wol-shutdown

systemctl list-units --type=device


# /sbin/ethtool eth0
Settings for eth0:
        Supported ports: [ TP    MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
        Link partner advertised pause frame use: Symmetric
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: external
        MDI-X: Unknown
        Supports Wake-on: pg
        Wake-on: d
        Link detected: yes


grep CONFIG_MARVEL /boot/config-$(uname -r) # config-6.1.0-32-marvell
CONFIG_MARVELL_PHY=m
CONFIG_MARVELL_10G_PHY=m
# CONFIG_MARVELL_88X2222_PHY is not set

RECOVER

sudo apt install isc-dhcp-server atftpd sudo 


file=F_TS-420U


mac="00:08:9b:Ff:Ff:Ff"
filename=F_TS-420U


# TODO use default net :  http://169.254.100.100:8080 (if no DhCp)

file -E /srv/tftp/$file

cat<<EOF | tee $file.conf
host kwd {
    hardware ethernet $mac;
    filename "$filename";
    fixed-address 192.168.0.71;
    next-server 192.168.0.254;
}


grep INTERFACESv4=  /etc/default/isc-dhcp-server 
INTERFACESv4="eno1"


subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.10 192.168.0.20;

}

 cat /etc/dhcp/dhcpd.conf.orig $file.conf  > /etc/dhcp/dhcpd.conf


 systemctl restart isc-dhcp-server.service || journalctl -u isc-dhcp-server.service
journalctl -f -u isc-dhcp-server.service



double beep

loud fan

still blinking

blink red and green

 ping  192.168.0.71

ssh installer@192.168.0.71
ls /dev/disk/by-id/* | grep -v 'ata'  | while read t; do mkdir -p /mnt/$t && mount $t /mnt/$t ; done

cd /mnt/dev/disk/by-id/wwn-xxx-part2
 mount --bind /mnt/dev/disk/by-id/wwn-xxx-part1 ./boot


time flash-kernel 
EOF

misc

MORE

@TaG: NaS

omv.txt · Last modified: 2025/03/30 10:45 by rzr
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki