Opóźnienie przy uruchamiamiu mc - rozwiązanie.
|
PiotrC |
Dodano 14-09-2016 17:10
|
User
Posty: 68
Dołączył: 02/08/2016 14:29
|
Rzecz ma miejsce w optware-ng, ale jestem dziwnie spokojny, że w entware-ng jest identycznie. Po zainstalowaniu bash-a i dodaniu do pliku /opt/etc/profile wpisu:
Cytat export SHELL=/opt/bin/bash
mc w ostatnio obowiązującej wersji startuje bez opóźnienia. Dodatkowym bonusem jest pełny shell po wciśnięciu ctrl+o
Edytowany przez kille72 dnia 14-09-2016 21:28
|
|
|
|
pedro |
Dodano 14-09-2016 18:02
|
Moderator
Posty: 1001
Dołączył: 21/09/2015 15:03
|
Cytat PiotrC napisał(a):
Rzecz ma miejsce w optware-ng, ale jestem dziwnie spokojny, że w entware-ng jest identycznie. Po zainstalowaniu bash-a i dodaniu do pliku /opt/etc/profile wpisu:
Cytat export SHELL=/opt/bin/bash
mc w ostatnio obowiązującej wersji startuje bez opóźnienia. Dodatkowym bonusem jest pełny shell po wciśnięciu ctrl+o
Super. Teraz po zalogowaniu mam:
/usr/sbin/cru: line 28: [: not found
/usr/sbin/cru: line 33: [: not found
/usr/sbin/cru: line 36: cat: not found
/usr/sbin/cru: line 28: [: not found
/usr/sbin/cru: line 33: [: not found
/usr/sbin/cru: line 36: cat: not found
/usr/sbin/cru: line 28: [: not found
/usr/sbin/cru: line 33: [: not found
/usr/sbin/cru: line 36: cat: not found
/usr/sbin/cru: line 28: [: not found
/usr/sbin/cru: line 33: [: not found
/usr/sbin/cru: line 36: cat: not found
/usr/sbin/cru: line 28: [: not found
/usr/sbin/cru: line 33: [: not found
/usr/sbin/cru: line 36: cat: not found
/usr/sbin/cru: line 28: [: not found
/usr/sbin/cru: line 33: [: not found
/usr/sbin/cru: line 36: cat: not found
I cokolwiek wpisze (np. ls):
[root@n18u root]$ ls
-sh: ls: not found
Netowski 1Gb/1Gb
Huawei E3372s-153 non-hilink + 2x15dBi MIMO
FreshTomato: Asus RT-AC3200 + RT-N18U + RT-N66U + RT-N12
|
|
|
|
Steel_Rat |
Dodano 14-09-2016 20:06
|
OL Maniac
Posty: 1831
Dołączył: 29/05/2011 22:24
|
@PiotrC ten wpis nie działa w entware. Dalej MC jak wolno się uruchamiało tak się uruchamia, może nawet jeszcze wolniej.
@pedro myślę, że ten wpis w "profile" powinien wyglądać tak
export PATH=/opt/bin:/opt/sbin:/opt/bin/bash:$PATH
ale jak pisałem to nie działa.
Problem z długim startem dotyczy MC w wersji 4.8.17.
Alternatywa dla tych co mają entware-ng to instalacja MC w wersji 4.8.14. Można ją pobrać tu http://qnapware.zyxmon.org/binaries-a...ies-armv7/
Najpierw należy odinstalować wersję 4.8.17 poleceniem
Potem pobieramy wersję 4.8.14
cd /tmp
wget http://qnapware.zyxmon.org/binaries-armv7/mc_4.8.14-1.3_armv7soft.ipk
chmod +x mc_4.8.14-1.3_armv7soft.ipk
opkg install mc_4.8.14-1.3_armv7soft.ipk
jak ktoś chce zablokować aktualizację pokietu MC to można go zablokować poleceniem
WRT3200ACN (WRT32X) + OpenWRT 18.06+światełko 150/150 Mb/s
Asus RT-AC68UvE1 + RMerlin + Entware
Netgear WNR3500Lv2 + DDWRT
|
|
|
|
shibby |
Dodano 14-09-2016 20:29
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
poprawnie /opt/etc/profile ma wyglądać tak:
Cytat PS1="[\u@\h \W]$ "
PATH=/opt/sbin:/opt/bin:/sbin:/bin:/usr/sbin:/usr/bin
LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/opt/lib:/opt/usr/lib
#export TERMINFO=/opt/share/terminfo
export PS1 PATH LD_LIBRARY_PATH
Zakomentowana linia z TERMINFO jest wymagana na optware. Na optware-ng nie potrzeba jej odkomentowywać.
Mam od dziś wgrane optware-ng, wgrany bash i nowyższe wpisy w profile i mc działa dobrze, pozostałe komendy również
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
PiotrC |
Dodano 14-09-2016 20:37
|
User
Posty: 68
Dołączył: 02/08/2016 14:29
|
Przepraszam, z pośpiechu pomyliłem zmienne - dla tych, których problem dotknął, do pliku /opt/etc/profile można się dostać przez FTP i albo plik edytować, albo mu zmienić chwilowo nazwę.
Chodzi o zmienną SHELL:
Cytat export SHELL=/opt/sbin/bash |
|
|
|
Steel_Rat |
Dodano 14-09-2016 20:48
|
OL Maniac
Posty: 1831
Dołączył: 29/05/2011 22:24
|
Wersja MC 4.8.17 uruchamia się u mnie 10 sekun.
Wersja MC 4.8.14 uruchamia się poniżej 1 sekundy.
Różnica jest...
Wersja 4.8.17 jest pobierana z repo z tej strony http://pkg.entware.net/binaries/armv7/
Wersja 4.8.14 jest pobierana z repo z tej strony http://qnapware.zyxmon.org/binaries-a...ies-armv7/
Wpisy w "profile" które podał Shibby działają ale nie zmieniają szybkości uruchamiania MC.
Połączony z 14 wrzesień 2016 20:51:46:
Cytat PiotrC napisał(a):
Przepraszam, z pośpiechu pomyliłem zmienne - dla tych, których problem dotknął, do pliku /opt/etc/profile można się dostać przez FTP i albo plik edytować, albo mu zmienić chwilowo nazwę.
Chodzi o zmienną SHELL:
Cytat export SHELL=/opt/sbin/bash
Ok teraz przyspieszył MC 4.8.17 :). Ale shell po Ctrl+o nie działa. Nie da się wpisać komend.
Połączony z 14 wrzesień 2016 21:09:20:
powinno być
export SHELL=/opt/bin/bash
i działa shell :)
Edytowany przez Steel_Rat dnia 14-09-2016 21:09
WRT3200ACN (WRT32X) + OpenWRT 18.06+światełko 150/150 Mb/s
Asus RT-AC68UvE1 + RMerlin + Entware
Netgear WNR3500Lv2 + DDWRT
|
|
|
|
PiotrC |
Dodano 14-09-2016 21:09
|
User
Posty: 68
Dołączył: 02/08/2016 14:29
|
Cytat Ok teraz przyspieszył MC 4.8.17 Smile. Ale shell po Ctrl+o nie działa. Nie da się wpisać komend.
A wcześniej się dało? Basha zainstalowałeś?
U mnie (TomatoUSB, ARM7, optware-ng) bez tej linii (w tej, jak i wcześniejszych wersjach) po ctrl+o shella nie było, teraz jest.
@admin
Można prosić o poprawienie pierwszego posta? Z taką ścieżką, to sobie jeszcze kto krzywdę zrobi
@shibby
Zdaniem autora, zmienna LD_LIBRARY_PATH ma być pusta. Generalnie, do dopisania zmiennej SHELL nie miałem pliku /opt/etc/profile. Teraz mam i wygląda następująco:
Cytat
#
# Bash initialization script
#
PS1="[\u@\h \W]$ "
PATH=$PATH:/opt/sbin:/opt/bin
export PS1 PATH
export SHELL=/opt/bin/bash
Połączony z 17 wrzesień 2016 11:07:14:
Osoba nadzorująca optware-ng, alllexx88 jest niezwykle dociekliwy. Znalazł powód, dla którego, pomimo iż w najnowszej wersji mc ash z busybox jest obsługiwany, nie jest przez mc rozpoznawany, co powoduje 10 sekundowe opóźnienie. Prosi o następującą poprawkę w TomatoUSB by Shibby:
Cytat alllexx88 napisał:
If you want this to work with tomatousb shell, you'll have to ask Shibby to enable CONFIG_ASH_EXPAND_PRMT busybox config.
Ponadto, we wszystkich wersjach TomatoUSB występuje od dawna błąd uniemożliwiający autentykację przez pam (na przykład w CUPS):
Cytat alllexx88 napisał:
The bug lies within root /etc/shadow entry:
root: :0:0:99999:7:0:0:
You can fix it with a sed on every boot:
sed -i -e '/^root:/s/:0:0:99999:7:0:0:$/:17048:0:99999:7:::/' /etc/shadow
This should work for many, many years (at least, if your system time is correct: see http://www.tldp.org/LDP/lame/LAME/linux-admin-made-easy/shadow-file-formats.html)
@Shibby
Byłbyś uprzejmy uwzględnić oba te punkty w następnej kompilacji? Wtedy mc będzie działał bez opóźnienia out-of-the-box bez potrzeby instalowania basha.
Edytowany przez PiotrC dnia 17-09-2016 11:07
|
|
|
|
kille72 |
Dodano 17-09-2016 14:57
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Cytat alllexx88 napisał:
If you want this to work with tomatousb shell, you'll have to ask Shibby to enable CONFIG_ASH_EXPAND_PRMT busybox config.
Czyli w pliku Config.in w /router/busybox trzeba dopisac:
Czy: (???)
config CONFIG_ASH
bool "ash"
default y
help
Tha 'ash' shell adds about 60k in the default configuration and is
the most complete and most pedantically correct shell included with
busybox. This shell is actually a derivative of the Debian 'dash'
shell (by Herbert Xu), which was created by porting the 'ash' shell
(written by Kenneth Almquist) from NetBSD.
config CONFIG_ASH_EXPAND_PRMT
bool " Support expand PS#"
default y
depends on CONFIG_ASH
help
"PS#" may be have commands. It option enable expand string
from prompt before each show. |
|
|
|
PiotrC |
Dodano 17-09-2016 21:07
|
User
Posty: 68
Dołączył: 02/08/2016 14:29
|
Dopisanie w /opt/etc/profile eksportu
Cytat export SHELL=/bin/sh
powoduje, że mc startuje z opóźnieniem 10 sekund (busybox melduje, że jest w wersji 1.25.0). Po zainstalowaniu natomiast busyboxa z optware-ng
Cytat alllexx86 napisał
ipkg update
ipkg upgrade busybox busybox-base busybox-links --force-depends
SHELL=/opt/bin/sh
mc startuje bez opóźnienia i z subshellem. |
|
|
|
kille72 |
Dodano 17-09-2016 22:12
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Nie mam busyboxa w entware-ng i najnowszy mc startuje blyskawicznie i subshell dziala poprawnie (Tomato v138), zainstalowalem bash + dopisalem tylko w /opt/etc/profile
export SHELL=/opt/bin/bash
root@Asus:/tmp/home/root# opkg list_installed
bash - 4.3.42-1a
entware-opt - 222108-2
file - 5.25-1
findutils - 4.6.0-1
glib2 - 2.46.2-1
htop - 2.0.1-1
ldconfig - 2.23-5
libattr - 20160302-1
libblkid - 2.28-1
libc - 2.23-5
libcurl - 7.49.0-1
libevent2 - 2.0.22-1
libffi - 3.2.1-2
libgcc - 5.4.0-5
libiconv-full - 1.11.1-3
libintl-full - 0.19.6-2
libmagic - 5.25-1
libmount - 2.28-1
libncurses - 6.0-1b
libncursesw - 6.0-1b
libopenssl - 1.0.2h-1
libpthread - 2.23-5
librt - 2.23-5
libslang2 - 2.3.0-1
libssh2 - 1.7.0-1
libssp - 5.4.0-5
libstdcpp - 5.4.0-5
libuuid - 2.28-1
locales - 2.23-5
mc - 4.8.17-3
nano - 2.6.0-1
terminfo - 6.0-1b
transmission-daemon-openssl - 2.92-3
zlib - 1.2.8-1 |
|
|
|
PiotrC |
Dodano 18-09-2016 00:31
|
User
Posty: 68
Dołączył: 02/08/2016 14:29
|
Cytat kille72 napisał(a):
Nie mam busyboxa w entware-ng i najnowszy mc startuje blyskawicznie i subshell dziala poprawnie (Tomato v138), zainstalowalem bash + dopisalem tylko w /opt/etc/profile
Też nie mam busyboxa doinstalowanego w optware-ng, też mam doinstalowanego basha, dopisane SHELL i też mi się otwiera mc błyskiem ciupagi. Dwocip polega na tym, że w aktualnej wersji mc powinien rozpoznawać sh z busyboxa dostępnego w Tomato, ale tego nie robi, co wyjaśnił alllexx88. Sugerujesz, że przy kompilacji Tomato jest ustawione w busyboxie wszystko jak trzeba? Widocznie nie, skoro dopiero busybox z optware-ng działa jak należy. Pomaga, jak sam piszesz, doinstalowanie basha, a powinno działać bez tego dodatkowego basha. |
|
|
|
kille72 |
Dodano 18-09-2016 15:51
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Dodalem CONFIG_ASH_EXPAND_PRMT=y do konfigu busyboxa i skompilowalem obraz ARM, nie rozwiazalo to u mnie problemu z dlugim startem najnowszego mc z entware-ng (oczywiscie wywalilem wczesniej bash).
Dziwne ze przedostatni mc startuje szybko bez bash... |
|
|
|
PiotrC |
Dodano 18-09-2016 17:59
|
User
Posty: 68
Dołączył: 02/08/2016 14:29
|
Poczytaj tutaj.Cytat I finally realized what's actually going on when you try to use mc with TomatoUSB busybox ash (/bin/sh points to busybox binary, and it's actually busybox ash shell). I took a look at mc sources (more specifically, src/subshell/common.c), and now it's all clear. mc needs a way to know subshell current working dir in order to change its dir accordingly, so it creates a named pipe for this (subshell_pipe[WRITE]) -- to have subshell echo its CWD there after each prompt. In case of bash, it appends pwd>&subshell_pipe[WRITE];kill -STOP $$ to PROMPT_COMMAND, which gets executed before every prompt, but busybox ash doesn't use PROMPT_COMMAND, so the only way to get it done is emulating similar behaviour with PS1, and it launches this command during subshell initialization for this: precmd() { if [ ! "${PWD##$HOME}" ]; then MC_PWD=\"~\"; else [ "${PWD##$HOME/}" = "$PWD" ] && MC_PWD="$PWD" || MC_PWD="~/${PWD##$HOME/}"; fi; echo "$USER@$(hostname -s):$MC_PWD"; pwd>&subshell_pipe[WRITE]; kill -STOP $$; }; PRECMD=precmd; PS1='$($PRECMD)$ '. This can only work if PS1 is being expanded, so it needs CONFIG_ASH_EXPAND_PRMT=y busybox config, otherwise you get plain $($PRECMD)$ string as a result, and nothing executed/piped (like in case of TomatoUSB shell). What happens in the latter case, is that mc waits 10 seconds after subshell initialization for CWD to get forwarded, and when these 10 seconds expire, it silently disables the subshell.
Rzeczywiście, problem musi być gdzie indziej, bo nawet ustawienie zmiennej SHELL=/foo powoduje, że mc uruchamia się natychmiast (tyle, że bez subshella), a ustawienie SHELL=/bin/sh powoduje oczekiwanie 10 sekund.
Dam znać alllexxowi88, może on coś wymyśli.
PS. A jak dodasz export SHELL=/bin/sh to zmienia to cokolwiek w sytuacji?
PS2. Jak dodam export SHELL="/bin/busybox sh" albo export SHELL="/bin/busybox ash" to startuje natychmiast, tylko oczywiście bez subshella. Sprawdź, jak u Ciebie.
Połączony z 18 wrzesień 2016 21:05:14:
PS3.
Alllexx88 skompilował busyboxa z włączonym CONFIG_ASH_EXPAND_PRMT=y
Cytat @PiotrC1
OK, I tried, and it works as expected. I think there's something wrong with your colleagues build. A simple way to test if CONFIG_ASH_EXPAND_PRMT=y is really set is to run this command PS1='$(echo "# ")'. If the prompt looks like this after the command:
$(echo "# ")
Then it's off. It should look like this:
#
In the config I used I only disabled deprecated 2.4 modutils stuff and emptied CONFIG_CROSS_COMPILER_PREFIX, everything else was unchanged.
|
|
|
|
kille72 |
Dodano 19-09-2016 19:22
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Ok, udalo sie, skompilowalem wersje z ASH_EXPAND_PRMT, po komendzie
PS1='$(echo "# ")'
daje
#
zamiast
$(echo "# ")
Bez bash w /opt oraz wpisu "export SHELL=/opt/bin/bash" w profile, mc startuje w sekunde, subshell tez dziala.
@PiotrC, jaki Ty masz router? |
|
|
|
PiotrC |
Dodano 19-09-2016 20:07
|
User
Posty: 68
Dołączył: 02/08/2016 14:29
|
Cytat kille72 napisał(a):
Ok, udalo sie, skompilowalem wersje z ASH_EXPAND_PRMT, po komendzie
PS1='$(echo "# ")'
daje
#
zamiast
$(echo "# ")
Bez bash w /opt oraz wpisu "export SHELL=/opt/bin/bash" w profile, mc startuje w sekunde, subshell tez dziala.
Gratulacje. Co było zwalone przy pierwszej kompilacji, że zapytam z ciekawości?
Cytat @PiotrC, jaki Ty masz router?
Asus RT-AC68U, czyli wygląda na to, że ta sama wersja co u Ciebie - K26ARM. Jak chcesz, żebym potestował, to wersja 138VPN, bo nie chce mi się ręcznie konfigurować od nowa (skrypt, który ma sam to przenosić nie przeniósł wszystkiego i miałem dodatkową robotę). Popraw przy okazji błąd generacji /etc/shadow. |
|
|
|
kille72 |
Dodano 19-09-2016 20:13
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Ok, skompiluje Ci VPN, bedzie za godzinke. Edytowalem plik Config.in za 1 razem, nic to nie dalo, za drugim edytowalem plik config_base ktorego nie wolno edytowac i poszlo (Automatically generated make config: don't edit)
Połączony z 19 wrzesień 2016 20:48:49:
Cytat Popraw przy okazji błąd generacji /etc/shadow
A jak dokladnie bo sie na tym nie znam |
|
|
|
PiotrC |
Dodano 19-09-2016 23:18
|
User
Posty: 68
Dołączył: 02/08/2016 14:29
|
Cytat kille72 napisał(a):
Połączony z 19 wrzesień 2016 20:48:49:
Cytat Popraw przy okazji błąd generacji /etc/shadow
A jak dokladnie bo sie na tym nie znam Ja też nie. To w takim razie pozostaje Shibby? |
|
|
|
kille72 |
Dodano 19-09-2016 23:22
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Tak, poczekamy z /etc/shadow na @Shibby. Testowales mc? @Steel_Rat testowal na 68u i dziala u niego poprawnie |
|
|
|
PiotrC |
Dodano 20-09-2016 00:35
|
User
Posty: 68
Dołączył: 02/08/2016 14:29
|
A pod jakim adresem jest to do testowania? |
|
|
|
kille72 |
Dodano 20-09-2016 00:35
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Jak ktos chce potestowac wersje 138 ARM z poprawionym VLAN, najnowszym OpenVPN 2.3.12, najnowszym TOR 0.2.8.7 oraz zmiana w konfiguracji Busybox ktora przyspieszyla start najnowszego Midnight Commander'a 4.8.17, prosze pisac do mnie PM.
Skompilowalem obrazy ARM do 10 modeli: RT-AC56U, RT-AC68U, RT-N18U, EA6500v2, EA6700, EA6900, R6250, R6300v2, R6400, R7000. |
|
|