A Debian Linux telepítési kísérlet végkifejlete még a második bejegyzés megírásakor is kérdéses volt számomra, de jelenleg már egy jól működő Debian Linux fut az NSA320S vason. Ebben a bejegyzésben a telepítés leírását és a telepítéshez létrehozott fájlokat osztom meg.
Fontos! Szándékosan nem egy könnyen követhető step-by-step leírás készült. Senkit nem bíztatok arra, hogy pusztán a leírásomra alapozva belekezdjen egy NAS szoftverének vagy hardverének módosításába. Egyetlen célom, hogy a rendelkezésemre álló információkat megosszam azokkal, akik szintén hasonló megoldáson törik a fejüket. Minden hozzászólást, infót és visszajelzést szívesen fogadok, de a leírásom felhasználásából fakadó károkért felelősséget vállalni nem tudok.
Az ARMv5 vason bootolható Debian alaprendszer telepítése
Szerencsére nem fájlonként kell összevadászni egy ARMv5 alaprendszert, hanem legalább két lehetőség van.
- A debootstrap csomag segítségével bármilyen Debian rendszeren (nem kell ARM, tökéletes egy i386/amd64) létrehozható egy alap rootfs. A kész alaprendszert csak át kell másolni az adott vason elérhető médiára, ami lehet egy pendrive vagy SATA lemez adott partíciója vagy akár egy NFS szerver is.
- Egy Debian netboot telepítő bootolásával még egyszerűbb a helyzet, mert a telepítés mellett beállítások nagy részét elvégzi a Debian installer.
Én első körben a debootstrap módszerrel tettem próbát, de a kész kernellel a Debian installer már egy sokkal kényelmesebb lehetőséget kínál.
Debian installer használata az NSA320S eszközön
A Debian ARM netboot telepítő bebootolható az NSA320S vason, ekkor a konzolos Debian telepítő felületén kell csak végigfutnunk egy működőképes alaprendszer telepítéséhez. Természetesen itt nem egy Debian telepítő ISO letöltésével, lemezre írásával indulnak a teendők.
- A működőképes 3.19 kernel kész. (Az előző bejegyzések írásakor még 3.18.4 volt aktuális, de azóta kijött a 3.19 is.)
- Egy ARMv5 vason használható netboot telepítő initrd letölthető a Debian mirrorokról.
- Az U-Boot segítségével bebootolható a kernel és a telepítő initrd pendriveról vagy akár TFTP szerverről is.
- Létrehozható olyan összeállítás, amelynél már a telepítéshez sem (!) szükséges soros konzol.
- Az U-Boot megfelelő beállításával több kernel és rootfs között is válthatunk, illetve létrehozhatunk egy nekünk tetsző bootsorrendet vagy recovery lehetőséget is.
Az U-Boot beállítása
Az alábbi parancsok soros/TTL konzolon adhatóak ki.
setenv ipaddr 192.168.1.214 setenv netmask 255.255.255.0 setenv serverip 192.168.1.134 setenv bootargs_console 'console=ttyS0,115200' setenv bootargs_mtdpartitions 'mtdparts=nand_mtd:0x100000(uboot),0x80000(uboot_env),0x80000(key_store),0x80000(info),0xA00000(etc),0xA00000(kernel_1),0x2FC0000(rootfs1),0xA00000(kernel_2),0x2FC0000(rootfs2)' setenv init_usb 'mw.l f1010100 1361c000;usb reset' setenv init_eth 'phyWrite 1 0x16 0x3;phyWrite 1 0x10 0x1017;phyWrite 1 0x11 0x4408;phyWrite 1 0x16 0;phyWrite 1 0x4 0x1e1;phyWrite 1 0x9 0x300;phyWrite 1 0x10 0x3860;phyWrite 1 0x0 0x9140' setenv init_sata 'mw.l f1010104 c70e0ffd;ide reset' setenv bootcmd_sata 'setenv bootargs ${bootargs_console} ${bootargs_mtdpartitions} netconsole=6665@${ipaddr}/eth0,6666@${serverip}/ root=/dev/md0 ro;ext2load ide 0:1 0x800000 /uimage;bootm 0x800000' setenv bootcmd_usb 'setenv bootargs ${bootargs_console} ${bootargs_mtdpartitions} netconsole=6665@${ipaddr}/eth0,6666@${serverip}/;fatload usb 0 0x800000 /uimage;fatload usb 0 0xf00000 /uinitrd;bootm 0x800000 0xf00000' setenv bootcmd_nand 'setenv bootargs ${bootargs_console} ${bootargs_mtdpartitions} root=/dev/nfs rw init=/init;nand read.e 0x2000000 ${kernel_addr} 0xa00000; bootm 0x2000000' setenv bootcmd 'run init_eth;run init_usb;run init_sata;run bootcmd_usb;run bootcmd_sata;run bootcmd_nand' saveenv
Az U-Boot beállítások az NSA320S eredeti Zyxel rendszerén, telneten keresztül is hozzáférhetőek. Ott természetesen a setenv helyett fw_setenv parancsot kell használni, illetve a beállításokat elmentő (NAND) saveenv parancs kiadása ott nem szükséges. Innentől akár szétszedés és soros konzol nélkül is hackelgethető a rendszer.
A fenti beállításokkal az NSA320S az alábbiakkal próbálkozik a boot során
- Inicializálja a gigabites Ethernet portot. (init_eth)
- Bekapcsolja az USB portokat (+5V). (init_usb)
- Aktiválja a 2. SATA portot. (init_sata)
- Megpróbálja az előlapi USB portba dugott, FAT32-re formázott pendriveról betölteni a kernelt (/uimage) és az Debian telepítő uinitrd fájlját (/uinitrd). (bootcmd_usb)
- Megpróbálja az 1. SATA merevlemez (a bal oldali) 1. partíciójáról (/dev/sda1) betölteni a kernelt (/uinitrd), majd az md0 tömböt rootfs-ként átadni a kernelnek. (bootcmd_sata)
- Megpróbálja az eredeti Zyxel rendszert betölteni és bebootolni. (bootcmd_nand)
Természetesen nincs szükség minden lehetőségre, a fentiek alapján mindenki kedvére konfigurálhatja a boot sorrendjét. Az USB boot lehetőségét szerintem célszerű egyfajta „recovery” módnak megtartani.
Számomra a kernel foltozása közben az USB kulcs ki-be dugdosása elég kényelmetlen volt, az uinitrd-be injektált preseed.cfg fájl szerkesztése sem volt egyszerű, ezért inkább az alábbi módon, egy TFTP szerverről töltöttem be az épp létrehozott kernelt és a preseed.cfg fájlt.
setenv bootcmd_tftp 'setenv bootargs ${bootargs_console} ${bootargs_mtdpartitions} netconsole=6665@${ipaddr}/eth0,6666@${serverip}/ rootdelay=5 auto=true debian-installer/locale=en_US console-keymaps-at/keymap=us netcfg/choose_interface=eth0 netcfg/get_hostname=nsa320s netcfg/get_domain=local url=tftp://${serverip}/nsa320s/preseed.cfg;tftp 0x800000 /nsa320s/uimage;tftp 0xf00000 /nsa320s/uinitrd;bootm 0x800000 0xf00000'
Ezzel a beállítással az NSA320S a megadott TFTP szerverről (192.168.1.134) próbálja letölteni a telepítés kernelét (/nsa320s/uimage), az initrd (/nsa320s/uinitrd) és a preseed (/nsa320s/preseed.cfg) fájljait, majd ezekkel bootolja a Debian telepítőt.
A kernel boot folyamata a netconsole lehetőségével a megadott IP címen (192.168.1.134) lévő szerveren nyomon követhető (pl. „nc -l -u -p 6666” paranccsal). Sajnos, a Zyxel által szállított U-Boot nem tartalmazza a netconsole lehetőségét, így csak a Linux kernelének üzeneteit láthatjuk. Pedig megfelelően fordított U-Boot esetén akár a soros konzol helyett is használható volna a netconsole.
A bootargs rész TFTP esetén azért lett olyan hosszú, mert a preseed.cfg fájl is TFTP-ről töltődött nálam, és ennek előfeltétele, hogy a Debian telepítője még a preseed.cfg nélkül, automatikusan túljusson a hálózati beállításokon, hiszen a TFTP eléréshez a hálózatnak már működnie kell.
Ha valamiért mindenképp az eredeti, Zyxel rendszert kellene bootolni, akkor az alábbiakkal ez megtehető. Ez indul el akkor is, ha pendrive és diszkek nélkül kapcsoljuk be az NSA320S-t.
setenv bootcmd 'run bootcmd_nand' boot
Természetesen az eredeti U-Boot beállítások is visszaírhatóak, így nyom nélkül eltüntethető minden módosítás. Akár Debian rendszer alól is, az ehhez szükséges fw_setenv parancsot az u-boot-tools csomag tartalmazza.
A Debian telepítő uinitrd image létrehozása
Több ARMv5 kompatibilis netboot initrd is van a Debian mirroron, én ezek közül választottam egyet, és ebbe illesztettem be az alábbi módon a preseed.cfg fájlt. Ubuntu/Debian linuxon az mkimage parancs az u-boot-tools csomagban van.
apt-get install u-boot-tools wget -nd ftp://ftp.fsn.hu/pub/linux/distributions/debian/dists/wheezy/main/installer-armel/20130613+deb7u2+b4/images/versatile/netboot/initrd.gz mkdir irmod cd irmod gzip -cd ../initrd.gz | cpio --extract --verbose --make-directories --no-absolute-filenames cat >preseed.cfg <<EOF d-i debian-installer/locale string en_US.UTF-8 d-i debian-installer/language string en d-i debian-installer/country string HU d-i console-keymaps-at/keymap select us d-i netcfg/choose_interface select eth0 d-i netcfg/get_hostname string nsa320s d-i netcfg/get_domain string local d-i preseed/early_command string anna-install network-console d-i network-console/password password installer d-i network-console/password-again password installer d-i mirror/country string manual d-i mirror/http/hostname string ftp.hu.debian.org d-i mirror/http/directory string /debian d-i mirror/http/proxy string d-i anna/no_kernel_modules boolean true EOF find . | cpio -H newc --create --verbose | gzip -9 > ../initrd-preseed.gz cd .. mkimage -A arm -O linux -T ramdisk -C gzip -n netboot -a 0 -e 0 -d initrd-preseed.gz uinitrd
Az U-Boot számára a kernel zImage formájában nem emészthető, ezt is a saját image formátumába kell csomagolni az mkimage paranccsal, az ehhez használt konkrét parancsokat az előző bejegyzésben írtam. A kernel, az initrd és a dtb fájl egy uimage fájlba is gyúrható az mkimage segítségével.
A Debian Linux telepítése
A fenti beállítások mellett már csak egy USB pendrive-ra van szükség (FAT32), amire a Debian telepítőhöz szükséges két fájl rámásolható.
/uimage /uinitrd
Bekapcsolás vagy reboot után a NAS elsőként ezeket fogja keresni az előlapi USB portba dugott pendriveon. Az NSA320S bootol, majd kb. 1 perc után a DHCP szervertől kapott IP címen elérhetővé válik telepítő SSH protokollon („ssh installer@kiosztott-ip-cim„). A belépéshez szükséges jelszó a preseed.cfg fájlban adható meg (a fenti példában ez „installer” volt).
Fontos! A beavatkozás nélküli hálózati beállításokhoz a fenti preseed.cfg fájl mellett egy működő DHCP szerver és internetes kapcsolat is szükséges, a telepítőnek ugyanis még az SSH konzol aktiválása előtt le kell töltenie néhány fájlt a megadott Debian mirrorról.
Az egyszerű telepítés után, reboot előtt már csak a kernelt kell átmásolni az 1. SATA diszk 1. partíciójára (/dev/sda1). Én egy 100 MB méretű partíciót hoztam létre ehhez, amelyet a rendszeren /boot alá mountoltam be. Az U-Boot számára RAID tömb vagy hasonló nem felel meg, mindenképp EXT2 vagy FAT partíció kell. A másoláshoz egy chroot után akár scp, wget vagy egyéb parancsot is használhatunk.
chroot /target /bin/bash scp root@ubuntu:/home/temp/build/uimage /boot/
A telepítésnél vicces(!) volt megtapasztalni, hogy a Debian telepítővel létrehozott szoftveres RAID1 tömböt a kernel nem képes automatikusan használatba venni. Az initrd kerülőútja helyett én inkább kézzel hoztam létre egy a kernel számára is emészthető md0 tömböt (v0.90).
mdadm –create /dev/md0 –metadata=0.90 –level=1 –raid-devices=2 /dev/sda3 /dev/sdb3
Utolsó simítások a Debian rendszeren
Ha mindent jól csináltunk, akkor elegendő újraindítani a rendszert, és máris a friss, ropogós Debian rendszeren végezhetjük el az utolsó simításokat.
Én az alábbiakat állítottam be első körben.
1. Az U-Boot beállításaihoz hozzáférést biztosító fw_setenv/fw_printenv működéséhez kell egy u-boot-tools csomag.
apt-get install u-boot-tools cat > /etc/fw_env.config <<EOF /dev/mtd1 0x0000 0x20000 0x20000 4 EOF fw_printenv
2. Az előlapi System LED-et a beállításaim szerint bootoláskor villogtatja a kernel, ez kikapcsolható a boot után.
cat > /etc/rc.local <<EOF #!/bin/sh -e # green sys led on echo none > /sys/class/leds/nsa320s\:green\:sys/trigger echo 1 > /sys/class/leds/nsa320s\:green\:sys/brightness EOF
3. A diszkek x percnyi tétlenség utáni lekapcsolásához kell egy hdparm.
apt-get install hdparm vim /etc/hdparm.conf
4. Az MCU által vezérelt ventilátor fordulatszámának és a hőmérsékletnek a lekérdezése i2c-tools csomaggal lehetséges.
apt-get install i2c-tools i2cget -y 0x0 0x0a 0x07 i2cget -y 0x0 0x0a 0x08
Az első érték (0x07) a hőmérséklet °C egységben, a második (0x08) a ventilátor egy fordulatának megtételéhez szükséges idő ezredmásodpercben (fordulat/perc = 60000/érték).
5. Az előlapi Power kapcsoló működéséhez kellhet egy acpid.
apt-get install acpid
A NAS funkciók eléréséhez persze telepíteni kell Samba, NFS, FTP vagy egyéb lehetőséget is. Természetesen rengeteg egyéb beállítást is illik elvégezni a rendszeren, de a legtöbbről nyilván mindenki más és más elképzeléssel bír, így nem mennék bele a részletekbe.
Összefoglalás
A Debian Linux rendszer összedrótozása az eddig nem támogatott vasra elvitte néhány napnyi szabadidőmet, de valószínűleg elsőként fejeztem be sikeresen a telepítést. A feladat ezzel számomra leküzdve.
Az alábbiak működnek az új rendszeren:
- Képes bebootolni SATA, USB vagy TFTP/NFS szerverről az aktuális Debian Linux.
- Gigabites ethernet port működik.
- Mindkét SATA port működik.
- Valamennyi előlapi LED elérhető.
- Működik a HT1382 típusú óra (RTC) elérése.
- Működik a szoftveres Poweroff lehetősége.
- Működnek az előlapi power, copy és a hátlapi reset nyomógombok.
- Az előlapi Copy LED bootoláskor a SATA portok aktivitását is mutatja, a System LED csak villogtatva van.
- A ventilátor fordulatszáma és az alaplap hőmérséklete lekérdezhető.
Egy-két dolog nem foglalkoztatott annyira, hogy komolyabban foglalkozzak vele:
- Az alaplapi csipogó (buzzer).
- A Wake-on-lan.
- A Power resume funkció.
- Az MCU funkciói.
Lehetne még finomítani a megoldásokon, hiszen nem készítettem DEB csomagot a kész kernelből, és nem használtam ki a kernel-modulok lehetőségét sem. Innentől ezek nem nagy feladatok.
A telepítés mellékhatásai
Az eredeti, folyton swappelő rendszerről írtam az első bejegyzésben, ahhoz képest jelentős javulást hoz, hogy Debian Linux alatt (Samba kiszolgáló mellett) 200 MB fölött marad használható a rendelkezésre álló 256 MB ramból. Bőven van lehetőség ezt-azt telepíteni a rendszerre, nem csak elvi lehetősége van annak, hogy több 10.000 debianos alkalmazás között válogassunk.
A Zyxel rendszerén végeztem 1-2 tesztet még a módosítás előtt, a nagy fájlok SMB protokollon keresztüli másolásánál stabilan kb. 18 MB/sec írási és 38MB/sec olvasási eredményt kaptam a gigabites hálózaton. (Az NSA325v2 ennek kb. a dupláját tudja azonos körülmények között.) A Debian Linux alatt az alapértelmezett Samba konfiggal (amelyben csak egy megosztást hoztam létre), minden tuning nélkül kaptam stabil 36MB/sec írási és 46MB/sec olvasási eredményt. Nyilván az eredeti és az új rendszer is tuningolható, de engem csak az alapbeállításokkal hozott átviteli sebesség érdekelt, az is csak egy teszt erejéig. A telepítéssel egyáltalán nem volt célom a teljesítmény javítása, az eredeti rendszer által nyújtott teljesítmény is bőven elegendő szinte bármire.
Talán egy majdani bejegyzésben a rendszerrel szerzett tapasztalataim mellett leírom majd, hogy mire is használhatjuk még a fentiek szerint létrehozott debianos NAS rendszerünket. Talán lesz bejegyzés arról is, hogy miképp használhatjuk a NAS-t arra, hogy CD/DVD/Pendrive nélkül bootoljunk róla Linux (vagy egyéb) telepítőt, vagy akár teljes operációs rendszert egy merevlemez nélküli számítógépen. Meglátjuk.
Fájlok:
linux-3-19-nsa320s.patch – Linux 3.19 kernel patch (MD5: 04fe738f7b1346ec644420bdc56f3cab)
config-3-19-nsa320 – Linux 3.19 kernel config (MD5: 250171f565548c48a997b799540543f3)
uimage – Linux 3.19 kernel U-Boot image (MD5: 48a096f0ed32abb06539373ef24fd722)
uinitrd – Debian Installer U-Boot image (MD5: b908e5a4c9e59d142215a9377221590f)
Frissítés: Az előző DTS fájlban benne maradtak a forrásul használt NSA320 DTS fájl készítőjének adatai. Javítva. /2015-02-12/
Hivatkozások:
http://www.madadmin.com/zyxel-nsa320s-es-debian-linux-1-resz/
http://www.madadmin.com/zyxel-nsa320s-es-debian-linux-2-resz/
http://www.madadmin.com/zyxel-nsa320s-es-debian-linux-3-resz/
http://www.madadmin.com/zyxel-nsa320s-es-debian-linux-5-resz/
http://www.kernel.org/
https://wiki.debian.org/EmDebian/CrossDebootstrap
Hello,
I have tried to follow your guide but i seem to fail, installer works, installs debian but it fails saying no kernel to be installed and i should copy my own one
when i copy over uImage to /boot/ and restart NSA320s it boots into syxel os not from usb
files in /boot/:
config-3-19-nsa320s
uimage
vmlinux
zImage-nsa320s
Thank you for any help
Hi Jochar,
Probably, the bootargs or bootcmd values are wrong. Where is the /boot partition? Please show your partition tables and U-Boot variables.
MadAdmin
Q: do i have to change uboot variables before each boot? or does saveenv permanently store them?
Im trying to boot off usb drive, i want to keep OS on usb and hdds as storage only. I have all data including boot in one partition (ext4)
16GB usb key
14.8GB primary
474MB swap
Thanks
The „saveenv” writes the modified environment to NAND (mtd1).
The preinstalled U-Boot does not support the EXT4 fs, only EXT2. Create a small EXT2 partition for /boot.
MadAdmin
Hello,
My boot log is here:
http://skrac.me/bwbDt
I did create a 500mb boot primary partition
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 976895 974848 476M 83 Linux
/dev/sdb2 978942 30717951 29739010 14.2G 5 Extended
/dev/sdb5 978944 29747199 28768256 13.7G 83 Linux
/dev/sdb6 29749248 30717951 968704 473M 82 Linux swap / Solaris
i have creaded a boot partition and copyd to the root of it
76082 Feb 18 22:39 config-3-19-nsa320s
6241432 Feb 28 02:06 Image
1602532 Feb 28 02:06 System.map
2166724 Feb 28 02:07 uimage
71863766 Feb 28 02:06 vmlinux
2157568 Feb 28 02:06 zImage
2166660 Feb 28 02:06 zImage-nsa320s
but still it boots into zyxel os
i must be doing somethign wrong…
Please show your U-Boot variables.
Execute the following commands and observe the results:
MadAdmin
Marvell>> run init_usb
(Re)start USB…
USB: scanning bus for devices… 3 USB Device(s) found
Waiting for storage device(s) to settle before scanning…
1 Storage Device(s) found
Marvell>> ext2ls usb 0:1
1024 .
1024 ..
12288 lost+found
76082 config-3-19-nsa320s
6241432 Image
1602532 System.map
2166724 uimage
71863766 vmlinux
2157568 zImage
2166660 zImage-nsa320s
It’s ok. Please show your U-Boot variables.
all envs are here:
http://skrac.me/WvaYw
Thank you for all the help
Something is wrong.
Your bootlog shows:
But your uboot variables does not contains any references to „usb 0:1”.
sorry but i have no idea how to fix this, can you maybe help me with it?
Thanks
Try this (in uboot console):
If it is works properly, then:
(if your rootfs is /dev/sdb5)
The comands above make it hang on booting kernel
„Uncompressing Linux… done, booting the kernel.”
log here:
http://skrac.me/5iS8z
i must be doing somethign wrong… i wish there would be a image i could just download and sync it to USB key
Looks like a bootargs problem…
What are the LEDs doing on the front panel of NSA320S?
Try this:
Thanks for the reply
First green led (Power) is flashing
[ 2.079982] —[ end Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
log here:
http://skrac.me/abhMv
but this is much closer
also this error:
[ 1.935641] VFS: Cannot open root device „sda5” or unknown-block(0,0): error -6
i have tried sda5 and sdb5 same error
Thank you
The system won’t boot because kernel tries to access the rootfs before the USB drive is recognized. To avoid this problem, pass a rootdelay parameter to the kernel.
Try this:
The „rootdelay=10” option will tell the kernel to wait 10 seconds before proceeding to mount the rootfs.
This booted just fine
here are some logs:
fw_printenv
http://skrac.me/mL4ho
dmesg
http://skrac.me/OrkFN
now just need to modify the uboot to make it boot without ttl console input into debian
Thanks
The disk labels are more flexible.
Set the label of the rootfs to „usbroot”:
Add „root=LABEL=usbroot” to your bootargs:
Do you think this will work for permanent USB boot:
setenv bootcmd_sda5’setenv bootargs ‘console=ttyS0,115200 mtdparts=nand_mtd:0x100000(uboot),0x80000(uboot_env),0x80000(key_store),0x80000(info),0xA00000(etc),0xA00000(kernel_1),0x2FC0000(rootfs1),0xA00000(kernel_2),0x2FC0000(rootfs2) root=LABEL=usbroot rootdelay=10 ro’
setenv bootcmd ‘run init_eth;run init_usb;run init_sata;run bootcmd_usb;run bootcmd_sda5;run bootcmd_nand’
saveenv
boot
Thank you
Szia
Eloszor is hadd gratulaljak eme nagyszeru kuttato munkahoz. En is mar regota keresgeltem valami megoldast, hogy lecsereljem az nsa310s rendszeret. Aztan ratalatam erre a blogsorozatra (mar nem tudom, hogy hova volt belinkelve, gondoltam megnezem, hogy mi a hasonlosag az nsa320s es nsa310s kozott). Aztan jot az osszehasonlitas es vegul belevagtam es nagyon szepen muzsikal. Egy apro hibaval talkoztam, nemtudom nallad elofordul-e? Ha torrentezni is hasznalom es letoltok akkor elobb-utobb megall minden. iotop szerint kezdnek elakadni a processek io-wait-ban (99% iowait- 0 lemezmuvelet). Netconzolon hasonlo logotat kapok csak nagyon sokara
[ 6240.062325] INFO: task jbd2/sda4-8:1194 blocked for more than 120 seconds.
[ 6240.069205] Not tainted 3.19.0-nsa320s-1 #1
[ 6240.073929] „echo 0 > /proc/sys/kernel/hung_task_timeout_secs” disables this message.
[ 6240.081745] jbd2/sda4-8 D c06999b0 0 1194 2 0x00000000
[ 6240.088185] [] (__schedule) from [] (jbd2_journal_commit_transaction+0x1ec/0x1434)
[ 6240.097492] [] (jbd2_journal_commit_transaction) from [] (kjournald2+0xa4/0x228)
[ 6240.106627] [] (kjournald2) from [] (kthread+0xc0/0xd4)
[ 6240.113590] [] (kthread) from [] (ret_from_fork+0x14/0x3c)
[ 6240.120822] INFO: task kworker/0:1:9899 blocked for more than 120 seconds.
[ 6240.127693] Not tainted 3.19.0-nsa320s-1 #1
[ 6240.132413] „echo 0 > /proc/sys/kernel/hung_task_timeout_secs” disables this message.
[ 6240.140264] kworker/0:1 D c06999b0 0 9899 2 0x00000000
[ 6240.146677] Workqueue: ipv6_addrconf addrconf_verify_work
[ 6240.152108] [] (__schedule) from [] (schedule_preempt_disabled+0xc/0x10)
[ 6240.160546] [] (schedule_preempt_disabled) from [] (__mutex_lock_slowpath+0x7c/0xb0)
[ 6240.170021] [] (__mutex_lock_slowpath) from [] (addrconf_verify_work+0x8/0x14)
[ 6240.178979] [] (addrconf_verify_work) from [] (process_one_work+0x1d0/0x37c)
[ 6240.187764] [] (process_one_work) from [] (worker_thread+0x294/0x41c)
[ 6240.195935] [] (worker_thread) from [] (kthread+0xc0/0xd4)
[ 6240.203159] [] (kthread) from [] (ret_from_fork+0x14/0x3c)
Esetleg ha van valami otleted akkor szivesen meghalgatnam. Megyeszer koszi a nagyszeru leirast!
ui. probalkoztam vm.dirty_ratio es vm.dirty_background_ratio allitagtassl is de nem segitett. ja es 3 kulombozo hdd-vel probalatm de az esm segitett.
Szia!
Nálam egyszer jelentkezett hasonló, de később nem tudtam reprodukálni, így nem is foglalkoztam sokat vele. Arra gyanakszom, hogy a Zyxel NAS rendszerének leggyengébb láncszeme, a kevés RAM okoz gondot itt is.
A vm.min_free_kbytes növelésével próbálkozz meg, az alapértelmezett érték szerintem kevés, és ez kiválthat ilyen jelenséget. 5-8 Mbyte már megfelelőbb érték lehet.
Az eredeti Zyxel rendszer ilyen beállításokat használ:
Sok sikert!
Koszonom! Kiprobalom
Hello,
Any chance you could post your entire saveenv as I have done something to mine and its stuck in a loop now wont boot into Zyxel firmware neither it will boot debian.
Thank you
Szia. Eloszori sép munka zyxel-el ,de en ebbe azért nem vágnék bele. Viszont segitségedet kérném mert én csak film nézésre használnám az nsa320s gépt. Jelenleg plex servert telepitettem ra. Bin file-bol ami webes feluleten tökéletesen működik. A problémam ha a plex kliens app-on hasznalom telefon,lgtv akor csak az mp4 videokat jatsza le. Avi mkv wmv stb videok at nem inditja el. Erre lenne valami megoldas? Lgtv- ha dnla kapcsolaton csatlakozok a szerverhez ott minden formatumu videot lejátszik a tv igaz igy fapados könyvtár szerkezet a kezelőfelület. Jeleznem előte pc vont a plex server 1ghz 512 ram ott nem volt ijen problémám.
Remélem tudsz segiteni miért csak mp4 videók futnak
köszönöm
Szia! Sajnos, én nem használok Plex szervert, így nem tudok a segítségedre lenni. Úgy tippelem, hogy a videó konvertáláshoz gyenge processzor miatt talán bele sem tették a csomagba a transcoding lehetőségét.
Üdv,
Nagyon jól működő megoldás grat. hozzá, egy problémánk adódott mégpedig hogy iscsitarget-ként szeretnénk használni a NASunkat. (ugyanúgy NSA320S) A szolgáltatás indításánál errort dob:
Starting iSCSI enterprise target service:libkmod: ERROR ../libkmod/libkmod.c:554 kmod_search_moddep: could not open moddep file ‘/lib/modules/4.5.0-nsa320s-1/modules.dep.bin’
Tudnál ebben még valahogy segíteni?
Szia!
Az okoz gondot, hogy ez a kernel csak épphogy összerakva lett, nem lett elkészítve belőle a standard Debian kernel csomag, illetve nem lett kihasználva a kernel modulok lehetősége sem.
Az iscsitarget csomag viszont a standard Debian kernelhez készült, ami a szükséges ISCSI támogatást modulként tartalmazza. Emiatt van két modprobe sor az /etc/init.d/iscsitarget scriptben, ami a két kernelmodult töltené be. Modulok viszont nincsenek, így még a /lib/modules/ dir sem jön létre. A szükséges modulokat szerencsére tartalmazza a kernel, csak nem modulként.
Gyors megoldásként azt javaslom, hogy kommmentezd ki a problémás modprobe sorokat az /etc/init.d/iscsitarget scriptben így:
ietd_start()
{
log_daemon_msg „Starting iSCSI enterprise target service”
# modprobe -q crc32c
# modprobe iscsi_trgt
# RETVAL=$?
# if [ $RETVAL != „0” ] ; then
# log_end_msg 1
# exit $RETVAL
# fi
start-stop-daemon –start –exec $DAEMON –quiet –oknodo — $ISCSITARGET_OPTIONS
A jobb/szebb megoldás egy friss, Debianos standard szerinti kernel csomag létrehozása, de nem hiszem, hogy én ezt megcsinálom a közeljövőben. 🙂
Köszi a gyors választ, sajnos ezután is hiányolja:
Apr 20 07:01:26 nsa320s ietd: cannot find iscsictl in /proc/devices – make sure the kernel module is loaded
Apr 20 07:01:26 nsa320s ietd: unable to open ctldev fd: Success
Ez sajnos arra utal, hogy rosszul emlékszem, és az iscsi_target mégsincs a kernelben. Így sajnos nem úszható meg a kernel újrafordítása. A menuconfig esetén ezt itt találhatod meg:
Device Drivers > Generic Target Core Mod (TCM) and ConfigFS Infrastructure > Linux-iSCSI.org iSCSI Target Mode Stack
Üdv,
Újrafordítottam, be is tölti bootnál:
Apr 24 13:03:45 nsa320s kernel: [ 0.878855] Loading iSCSI transport class v2.0-870.
Apr 24 13:03:45 nsa320s kernel: [ 0.884159] iscsi: registered transport (tcp)
De mégis ezzel a hibával elhasal:
# ietd –config=/etc/iet/ietd.conf –debug 9 –foreground
1524571233.804192: cannot find iscsictl in /proc/devices – make sure the kernel module is loaded
1524571233.805081: unable to open ctldev fd: Success
Kicsit jobban utánanézve úgy tűnik, hogy az IET mára elavult. A kernelben lévő ISCSI target modul is a LIO-hoz készült. Szerencsére ezzel sem tűnik vészesnek az ISCSI target beállítása.
http://linux-iscsi.org/
Hasonló a helyzet, csak itt azt se nagyon tudom mit kellene nézni, hogy mi a baja 😀
Reading package lists… Done
Building dependency tree
Reading state information… Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up lio-utils (3.1+git2.fd0b34fd-2) …
Loading target_core_mod/ConfigFS core: [FAILED]: 1
invoke-rc.d: initscript target, action „start” failed.
dpkg: error processing lio-utils (–configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of targetcli:
targetcli depends on lio-utils; however:
Package lio-utils is not configured yet.
dpkg: error processing targetcli (–configure):
dependency problems – leaving unconfigured
Errors were encountered while processing:
lio-utils
targetcli
E: Sub-process /usr/bin/dpkg returned an error code (1)
ezután kiszedtem a modul betöltéseket az init scriptben hogy hiba nélkül induljon el de ennyire nem egyszerű a helyzet….
targetcli parancs ezt dobja (egy oldal traceback után):
IOError: [Errno 2] No such file or directory: ‘/lib/modules/4.5.0-nsa320s-1/modules.dep’
A leírásod alapján itt is az okoz gondot, hogy szinte minden debianos scriptbe bele van drótozva, hogy a szülkséges modulokat töltse be induláskor és távolítsa el leállításkor. Ezt így elég nehéz kiszedegetni mindenhonnan, és az első upgrade ki is gyalulja a módosításokat.
Legjobb volna egy rendes debianos kernelcsomagot készíteni, amiben minden modul, amit modulként várnak el a debianos csomagok. Ennél valamivel egyszerűbb megoldás, ha a kernelt úgy fordítod újra, hogy minden modulban legyen, ami nem kell a boothoz. A modulok a helyükre kerülhetnek, így a debianos scriptek sem hasalnak el emiatt.
Ha létrehozod a /lib/modules/4.5.0-nsa320s-1/ könyvtárat, akkor egy depmod paranccsal is létrehozhatóak az (üres) modules.dep, alias és egyéb fájlok. Ez sajnos sokat nem fog segíteni.