Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Petr Gajdůšek

Stran: [1] 2 3 4
1
Programování / Re:Problém s pravý
« kdy: 11. 01. 2018, 19:45:37 »
Ahoj,

Ty se v tom PHP pokoušíš otevřít /dev/ttyAMA0 pro zápis a čtení
Kód: (php) [Vybrat]
fopen('/dev/ttyAMA0','r+'); Ale protože je používáno jako sériová console (terminál), je na něm spuštěno getty, a tedy k němu má přístup jen skupina tty, a to jen pro zápis.

Kód: (bash) [Vybrat]
$ ls -l /dev/ttyAMA0
crw--w---- 1 root tty 204, 64 Jun  1 21:10 /dev/ttyAMA0

Proto ti pod Apachem funguje např.
Kód: (php) [Vybrat]
system ('echo hups> /dev/ttyAMA0'); když je Apache (uživatel www-data) ve skupině tty.

Podívej se do /proc/cmdline a uvidíš tam něco jako console=ttyAMA0,115200. Systemd potom na tomhle portu pustí getty a to nastaví zařízení  /dev/ttyAMA0  práva jako consoli (terminálu). Do terminálu smí zapisovat jen skupina tty, ale nesmí z něho číst. Zápis je nutný např. pokud chceš poslat zprávu na všechny terminály, můžeš použít /usr/bin/wall, který je vlastněn skupinou tty a má nastaven SETGID bit.

Ten odkaz ti měl napovědět. Jen tam místo řešení příčiny - /dev/ttyAMA0 se používá jako sériová console - ji obchází tím, že zakážou systemd unitu serial-getty@.service, která na zařízení /dev/ttyAMA0  spustí getty.

man 8 systemd-getty-generator

Odstraň z /boot/cmdline.txt text console=ttyAMA0,115200 a rebootuj.

Nyní už nebude /dev/ttyAMA0 používán jako console (nepoběží na něm getty), ale bude dostupný jako seriový port, ke kterému budou mít přístup uživatelé ve skupině dialout, pro čtení i zápis.

Kód: (bash) [Vybrat]
$ ls -l /dev/ttyAMA0
crw-rw---- 1 root dialout 204, 64 Jun  2 11:29 /dev/ttyAMA0

Dej apache (uživatele www-data) do skupiny dialout; odstraň ho ze skupiny tty a restartuj.

Viz. https://wiki.debian.org/SystemGroups

3
Volná diskuze / Re:Úkol :-)
« kdy: 12. 12. 2017, 04:45:15 »
Musíš ten script přece volat s parametry, který očekává.
Kód: [Vybrat]
muj_skript.sh <uzivatel> <home>
Přidej ty parametry do ExecStart= své systemd unity, stejně jako bys script spouštěl z příkazové řádky.

Jinak ten script má celkem dost problémů:

Volání adduser bys měl ošetřit pro libovolné (i nevalidní) hodnoty parametrů, např. obsahující mezery nebo začínající pomlčkou:
Kód: [Vybrat]
/usr/sbin/adduser --home="$home_directory" -- "$user"
Pokud má být script neinteraktivní, nemá v něm co dělat volání interaktivního sudo. Můžeš explicitně kontrolovat ještě před voláním adduser, zda je skript spuštěn pod rootem, jinak skončit chybou; místo toho abys nechal na nedostatek práv selhat až volání adduser.
Kód: [Vybrat]
if [[ $(whoami) != root ]]; then echo "You must run this script as root" >&2; exit 1; fi
Volat adduser jenom tehdy, pokud uživatel neexistuje, aby ses vyhnul neustálému selhávání a logování chyby. Ke zjištění, zda uživatel existuje se dá použít návratový kód příkazu getent passwd
Kód: [Vybrat]
if ! getent passwd -- "$user" >/dev/null; then ... fi
Mohl bys lépe parsovat parametry scriptu a případně vypisovat help.
http://wiki.bash-hackers.org/scripting/posparams

Hodně zdaru!

4
Volná diskuze / Re:Úkol :-)
« kdy: 10. 12. 2017, 17:18:45 »
Ten postup je v pořádku.

Snad jen zvýšit přesnost pomocí AccuracySec=, protože výchozí hodnota je 1 minuta, takže se ti skript bude volat každých 20 - 21 minut.

Zkontroluj status toho timeru a podívej se na logy.

TIP: Pokud ten script něco zapíše na standardní výstup (nebo standardní chybový výstup) tak se to objeví v logách. Toho můžeš využít k ladění.

Kód: [Vybrat]
$ sudo systemctl status myscript.timer
$ sudo journalctl --no-tail --follow --boot --unit myscript.service

Případně všechny logy (při omezení na unitu mně journalctl vynechává logy).
Kód: [Vybrat]
$ sudo journalctl --no-tail --follow --boot

5
Volná diskuze / Re:Úkol :-)
« kdy: 10. 12. 2017, 01:10:31 »
Ahoj,

nemám zkušenosti, ale kdybych chtěl co nejjednodušeji něco spouštět každých 20 minut po restartu, podíval bych se nejdříve na
Kód: [Vybrat]
man 5 systemd.timera na popis voleb OnBootSec= a OnUnitActiveSec=, případně OnUnitInactiveSec=

6
Všeobecná podpora / Re:Debian 9 Backports
« kdy: 17. 09. 2017, 00:12:22 »
Už jsou otevřený. Tuším od konce června.

7
Hardware / Re:USB tiskárna a výstup
« kdy: 10. 07. 2017, 22:08:27 »
Pro USB pass through musí být uživatel, pod kterým běží virtualbox ve skupině vboxusers.

http://www.virtualbox.org/manual/ch03.html#idm1624

Kód: (shell) [Vybrat]
petr:~$ VBoxManage list usbhost
Host USB Devices:

<none>

petr:~$ sudo VBoxManage list usbhost
Host USB Devices:

UUID:               07299018-f375-4b29-af48-2a02f2c7c96b
VendorId:           0x1c4f (1C4F)
ProductId:          0x0002 (0002)
Revision:           1.16 (0116)
Port:               0
USB version/speed:  1/Low
Manufacturer:       USB
Product:            USB Keykoard
Address:            sysfs:/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1//device:/dev/vboxusb/001/003
Current State:      Busy

UUID:               60452d66-aa23-470f-9921-727c177eff69
VendorId:           0x093a (093A)
ProductId:          0x2510 (2510)
Revision:           1.0 (0100)
Port:               1
USB version/speed:  2/Low
Manufacturer:       PixArt
Product:            USB Optical Mouse
Address:            sysfs:/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2//device:/dev/vboxusb/001/004
Current State:      Busy

petr:~$ sudo adduser petr vboxusers
petr:~$ newgrp vboxusers
petr:~$ VBoxManage list usbhost
Host USB Devices:

UUID:               75f56655-b9bc-4afb-99a6-e38124d8499d
VendorId:           0x1c4f (1C4F)
ProductId:          0x0002 (0002)
Revision:           1.16 (0116)
Port:               0
USB version/speed:  1/Low
Manufacturer:       USB
Product:            USB Keykoard
Address:            sysfs:/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1//device:/dev/vboxusb/001/003
Current State:      Busy

UUID:               f8c637c6-0832-4cb1-bd05-d1b214ce370a
VendorId:           0x093a (093A)
ProductId:          0x2510 (2510)
Revision:           1.0 (0100)
Port:               1
USB version/speed:  2/Low
Manufacturer:       PixArt
Product:            USB Optical Mouse
Address:            sysfs:/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2//device:/dev/vboxusb/001/004
Current State:      Busy


9
Ahoj,

Pokud jsou balíky staženy, lze použít apt-listchanges. Apticron nepoužívám, ale protože doporučuje apt-listchanges, tak ho snad i integruje.

Pokud chceš zobrazit seznam změn před stažením balíku, tak zbývá asi jedině packages.debian.org (nebo nějaké zrcadlo?). Například pomocí
Kód: [Vybrat]
apt-get changelog <packages>
Potom by ale bylo potřeba z toho dostat jen začátek po aktuálně nainstalovanou verzi, např. pomocí
Kód: [Vybrat]
parsechangelog --since <installed version> <path/to/changelog> z balíku libparse-debianchangelog-perl.

10
Všeobecná podpora / Re:Wheezy 32 bit - instalace Xfce 4.10
« kdy: 05. 06. 2014, 12:37:13 »
Začal jsem ho  backportovat. Zítra balíčky uploaduji na mentors.debian.net, netuším ale jestli je účet na mentors.debian.net přístupný jako  repozitář, asi ne. Nemám žádné FTP, na kterém bych ho mohl poskytnout. Pokusím se to dostat do wheezy-backports, ale nejsem si jist úspěchem, už tam je backportovaný xfce4-weather-plugin pro xfce 4.8.

11
Server / Re:nemohu najit httpd.conf
« kdy: 06. 02. 2014, 09:42:53 »
Kód: [Vybrat]
/etc/apache2/apache2.conf
Je rozdělen do menších souborů, struktura je popsána na začátku apache2.conf.


/etc/apache2/
 |-- apache2.conf
 |       `--  ports.conf
 |-- mods-enabled
 |       |-- *.load
 |       `-- *.conf
 |-- conf.d
 |       `-- *
 `-- sites-enabled
         `-- *

12
Všeobecná podpora / Re:problem gcc
« kdy: 06. 02. 2014, 00:26:57 »
Kód: [Vybrat]
configure: error: no acceptable C compiler found in $PATH

Potřebuješ C překladač (třeba gcc  ;))

Citace
v repo jsem našel gcc 4.6 nejspise 4.6.4 ale tu nedokáže systém zavést

Co znamená "tu nedokáže systém zavést" ? GCC 4.6. by ti měl jít normálně nainstalovat z repozitáře. To nejde? Z repozitáře můžeš mít zároveň nainstalováno i více verzí, gcc-4.7 klidně ponechat, není důvod ho odstraňovat.

K instalaci nvidia driveru nepotřebuješ nic ručně kompilovat. Proč nenainstaluješ nvidia-kernel-dkms balík (nebo jeden z legacy pokud máš starou kartu) z repozitáře, o kompilaci se ti automaticky postará DKMS. Potřebuješ k tomu již jen nainstanstalovat balík s hlavičkovými soubory pro své jádro.
Návod (velice jednoduchý) je na https://wiki.debian.org/NvidiaGraphicsDrivers. Potřebuješ s ním poradit, nebo ti nefunguje?

13
Správa a instalace softwaru / Re:update flash playeru
« kdy: 28. 01. 2014, 02:05:11 »
Kód: [Vybrat]
$ apt-cache madison flashplugin-nonfree
flashplugin-nonfree |      1:3.4 | http://ftp.cz.debian.org/debian/ sid/contrib i386 Packages
flashplugin-nonfree |      1:3.4 | http://ftp.cz.debian.org/debian/ testing/contrib i386 Packages
flashplugin-nonfree |      1:3.2 | http://ftp.cz.debian.org/debian/ wheezy/contrib i386 Packages

Blbá otázka, ale určitě máš v sources komponentu contrib a máš aktualizované indexy (apt-get update)?

Pokud ano, tak zkontroluj apt preferences, jestli ten balík nemáš třeba vypíchnutý.
Kód: [Vybrat]
apt-cache policy flashplugin-nonfree

14
Volná diskuze / Re:Příkazový řadek
« kdy: 04. 12. 2013, 07:25:07 »
1)
Kód: [Vybrat]
man 1 find2)
Kód: [Vybrat]
man 1 pgrep
man 1 pkill

15
Všeobecná podpora / Re:Velikost cílového disku při obnově
« kdy: 26. 11. 2013, 03:31:56 »
Zapomněli jsme zmínit, že v každém případě musí sedět velikost sektoru (512 vs 4096). Určitě ale bude existovat utilita, která by to přepočítala....

Co se MBR a C/H/S týká, tak se nic moc neděje i pokud partition entries neobsahují LBA a tedy zavaděč nebo OS čte z tabulky rozdělění disku C/H/S hodnoty.  Aby tedy disk bootoval nebo šel připojit stačí při nejhorším manuálně změnit C/H/S obnoveného disku v setupu BIOSu. Hodnoty se dají zjistit v setup BIOSu u nastavení původního disku (pokud je tam LBA není co řešit) nebo z tabulky rozdělení disku (C/H/S pro poslední sektor posledního oddílu) případně bývají uloženy i na souborových systémech. Navíc se to netýká linuxu, linuxové zavaděče geometrii reportovanou biosem nepoužívaly snad nikdy a u disků, které nemají v partition table LBA, IMHO použijí k přepočtu původní C/H/S geometrii. Ale i kdybych byl úplně mimo, není to nic, co by nešlo triviálně opravit testdiskem.

S GPT jsem se nikdy nesetkal, měl bych si rozšířit obzory, Palo, děkuji za vysvětlení. Nicméně podle wikipedie jsou v GPT hlavičce uloženy LBA primární i sekundární hlavičky, podle toho by snad nemělo vadit, když sekundární hlavička nebude LBA -1, nebo je to v praxi jinak?

Stran: [1] 2 3 4