Näytä kirjoitukset

Tässä osiossa voit tarkastella kaikkia tämän jäsenen viestejä. Huomaa, että näet viestit vain niiltä alueilta, joihin sinulla on pääsy.


Viestit - Mistofelees

Sivuja: [1] 2 3 ... 35
1
Annoin lopulta periksi ja kysyin Kuuklen mukaälyltä, jolta löytyi osa ratkaisusta:

Lyhyesti:
systemctl edit apache2
- Lisätään: (kantahakemiston lisäys riittää)
    [Service]
    ReadWritePaths=/home/www
- Potkaistaan Apachea:
    service apache2 restart
- Tarkistetaan:
    service apache2 status

Tämän jälkeen vielä permissiot järkeviksi ja  pöydän siivous,

-"Starting with Ubuntu 26.04, the Apache2 service defaults to a sandboxed systemd configuration (ProtectSystem=full).
This security restriction blocks Apache and PHP from writing to system directories such as /usr, /boot, /etc, and potentially custom application directories outside of standard paths. (https://vufind.org/wiki/installation:ubuntu), (https://www.securecoding.com/blog/how-to-secure-ubuntu-based-web-server/)
To resolve this issue, you must configure a systemd override to explicitly grant Apache permission to write to your desired storage paths, or double-check standard file system permissions.  (https://vufind.org/wiki/installation:ubuntu)"

2
Ubuntu serverin asennuksen jälkeen php ei ole kyennyt kirjoittamaan serverin levyille.
Samat scriptit toimivat edellisellä Ubuntu serveri asennuksella ongelmitta.
Uudelleenasennus johtui levyrikosta, jossa hävisi osan conf-tiedostoista

/var/log/apache2/error.log:
PHP Warning:  fopen(/home/www/GPS_tracker/Ulista.txt): Failed to open stream: Read-only file system in /home/www/GPS_tracker/test.php on line 5

PHP Fatal error:  Uncaught TypeError: fwrite(): Argument #1 ($stream) must be of type resource, false given in /home/www/GPS_tracker/test.php:7\nStack trace:\n#0 /home/www/GPS_tracker/test.php(7): fwrite()\n#1 {main}\n  thrown in /home/www/GPS_tracker/test.php on line 7

HTML-hakemisto on tarkoituksella siirretty /var/www/html -> /home/www jo pari vuosikymmentä sitten
Testattu myös alkuperäisessä /var/www/html -hakemistossa samoin tuloksin

Ongelman testausta varten laadittu scripti:
Koodia: [Valitse]
<?php
echo "Levylle kirjoitus<br>";
echo 
date("h:i:s<br>");
$file="/home/www/GPS_tracker/Ulista.txt";
$lista=fopen($file,&#39;w&#39;);
$tmp="Hello"."\n"
fwrite($lista,$tmp); //** 
fclose($lista);
?>


Sama ongelma koskee kaikkia php-tiedostoja kaikissa nettihakemistoissa
Jos saman scriptin ajaa komentoriviltä, se kirjoittaa aivan normaalisti

Apachen ja php:n uudelleenasennukset on tehty jo pariin kertaan
Suojaukset (tilapäisesti):
777 root:root /home
777 www-data:www-data /home/www
777 www-data:www-data /home/www/GPStracker
777 www-data:www-data /home/www/GPStracker/test.php
777 www-data:www-data /home/www/GPStracker/

Ubuntu server DISTRIB_DESCRIPTION="Ubuntu 26.04.1 LTS" täysin puhdas uusasennus tyhjille levyille.
Apache2 2.4.66-2ubuntu2.4 asennus Ubuntun distroista
php-gd                                  2:8.5+99ubuntu1
php8.5                                  8.5.4-0ubuntu1.2
php8.5-cli                             8.5.4-0ubuntu1.2
php8.5-common                   8.5.4-0ubuntu1.2
php8.5-gd                             8.5.4-0ubuntu1.2
php8.5-readline   

Netistä ei ole viielä löytynyt mitään apua.

3
Yleistä keskustelua / return string joe -editorilta ?
« : 19.08.26 - klo:12.01 »
Onko jotain tapaa, jolla saisi bash-scriptissä joe editorin palauttaman joen loppulauseen  muuttujaan ?
Mahdolliset joen palauttamat loppulauseet
- " File tmp not changed so no update needed "
- " File tmp saved "

Tarkoitus on tehdä scripti, joka kopioi editoidun tiedoston serverille *ainoastaan*, jos se on muuttunut.
Joe palauttaa $? -argumenttiin aina arvon '0', joten pitää tutkia tuota joen palauttamaa lausetta.

komento lause=$(joe tmp) käynnistää joen jonnekin taustalle näkymättömiin, joten editointi ei onnistu:
Koodia: [Valitse]
#!/bin/bash
ulos=$(joe tmp)
echo "Tulos: $ulos"

Saan joen editorin näkymään ja tuloksen scriptin käyttöön, jos kierrätän tuloksen tiedoston kautta, mutta se ei tunnu kovin sivistyneeltä:
Koodia: [Valitse]
#!/bin/bash
joe tmp 2>aa
echo "Tulos:"; cat aa

4
/dev-hakemistossa on ainakin sata laitetta. Miten saisi selville, mikä niistä on käytössä oleva 4G-modemi ?


lsusb  antaa:
Bus 002 Device 015: ID 05c6:f00e Qualcomm, Inc. FP3

lsusb -t
        |__ Port 002: Dev 017, If 0, Class=Wireless, Driver=rndis_host, 480M
        |__ Port 002: Dev 017, If 1, Class=CDC Data, Driver=rndis_host, 480M

modprobe rndis_host antaa tyhjän rivin

dmesg:
[115370.220403] rndis_host 2-1.2:1.0 usb0: unregister 'rndis_host' usb-0000:00:1a.0-1.2, RNDIS device
[115388.013647] usb 2-1.2: new high-speed USB device number 16 using ehci-pci
[115388.093374] usb 2-1.2: New USB device found, idVendor=05c6, idProduct=f00e, bcdDevice=ff.ff
[115388.093390] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[115388.093395] usb 2-1.2: Product: Android
[115388.093398] usb 2-1.2: Manufacturer: Android
[115388.093401] usb 2-1.2: SerialNumber: 0123456789ABCDEF
[115388.098102] rndis_host 2-1.2:1.0 usb0: register 'rndis_host' at usb-0000:00:1a.0-1.2, RNDIS device, fa:a7:a5:da:7d:a8

Vaikka tuon dmesg:n mukaan modemi olisi portissa usb0, ei esim putty löydä mitään /dev/tty0:sta.

modemin liittäminen ja taas poistaminen ei lisää eikä vähennä laitteita /dev -listauksessa

mmcli -L
No modems were found

Tiedostosta /sys/bus/usb/devices# less usb2/2-1/2-1.2/idVendor löytyi sama idVendor-tunnus 05c6, kuin lsusb:stä, mutta miten tästä eteenpäin ?


Netistä ja mukaälystä ei ole vielä ollut asiassa mitään apua.

5
Ei ihan mielellään vaihdeta.
Aikani mietittyäni päädyin seuraavaan:
- Rakennetaan ohjelmaan oma salasanakysely, joka kirjaa pääsyluvan cookieen vaikkapa max 8 tunniksi
- Siirretään datat netin ulkopuoliseen hakemistorakenteeseen / alihakemistoihin, joiden nimen alussa on piste

Tai talletetaan koko ohjelmistopaketti hakemistoon, jonka nimen alussa on piste ja tehdään erillinen 'portaali-ohjelma', joka kysyy salasanan ja siirtyy sitten salattuihin elämiin

6
Onko jotain valmista menetelmäää, jota voisi käyttää nettisivuston alasivujen suojaamiseen ?
Webbihotelli, jolla asiakkaani sivut ovat on muuttanyt Apachen:n asetuksia siten, että htaccess ei enää toimi. Eivätkä he tunnu olevan halukkaita muuttamaan asetuksia takaisin.

Itsellä ei ole kovin suurta intoa alkaa rakentaa kovin raskasta suojamuuria.

Kyseinen alasivusto sisältää tällä hetkellä kymmeniä alasivuja, jonne käyttäjät lisäävät jatkuvasti materiaalia, tekstiä ja dokumenttejä.
Sivuston runkona on yksi php tiedosto, josta se itse tekee jatkuvasti uusi kopioita symboolisina linkkeinä. Tekemäni ohelma on sinänsä kökköä koodia ja törkeän näköinen, mutta asiakkaat ovat olleet jo yli 10v tyytyväisiä.
Järjestelmä ei ole SQL:ää tms tietokantaa vaan eräänlainen B-hakupuun muunnos.

7
Kelluvat jännitemittaukset voi toteuttaa opto-erottimilla.
Isojen virtojen mittausta varten olen itse käyttänyt DC virta-antureita. Rakenteeltaan kuin pihtivirtamittari, eli ferriittirengas, jonka raossa on HALL-anturi.
Pienemmille virroille 0.2-5A riittää moduli, jossa on HALL mikropiirin sisällä.

8
4G reitittimeen on kytketty itsetehty Arduino-vekotin.
Tämän pitäisi lähettää lyhyt viesti palvelimelle  ja saada tältä vastaus.
Siis kuten lähetetään http-palvelimelle pyyntö ja saadaan vastauksena nettisivu.

Miten tälläisen saisi onnistumaan ?
nc on aika rajallinen työkalu tähän serverin päässä.
Saan kyllä viestin lähtemään, mutta vastaus ei tule Arduinolle.
En haluaisi käyttää httptä ja sen porttia, koska palvelin on  palomuurin suojassa.

9
Kyllästyin lopullisesti noihin GT0X-trackereihin. Käsiin tuli useampiakin joiden sanottiin olevan GT02 ja GT06. Kasasta ei löydy kahta, jotka noudattaisivat samaa protokollaa.
Ikävintä oli, että Kiinasta tulleet lähettivät dataa miten satui. Vaikka aikaleimat olivat oiken, olivat sijainnit miten satuu kuljetun polun varrella. Aivankuin laitteet varastoisivat puolisen tusinaa viestiä, lähettäisivät kymmenkunta oikeassa järjestyksessä ja sitten yhtäkkiä nuo varastoimansa. Jälkikäteen selvittely käy työstä.

Yksi merkillisyys on, että vaikka nuo asettaisiikin keskustelemaan suoraan kotiserverin kanssa, ne ilmiselvästi lähettävät välillä dataa Kiinan kansanarmeijalle. Datavirrassa on selvästi nähtävissä tiettyinä ajanhetkinä hh:01:04 aktiviteettia, joka ei selity normaalilla paikannuksella.

Tein omat trakkerini ja ohjelmani.

10
Käytän nc (netcat) serverillä pakettien vastaanottoon, mutta en ole keksinyt tapaa, jolla saisi palautettua clientille.
Pitäisi tietää osoite ja portti, jonne lähettää. GSM ja 4G osoite on dynaaminen.

11
Onko jotain tapaa, jolla Linux lähettäisi TCP-paketteja 4G mokkulaa käyttävälle clientille ?

Serveri on Linux-kone kotona. Serverillä ja reitittimellä on portti auki ja yhteys toimii serverille päin.
Serverillä pyörivä ohjelma pitää huolen liikenteen turvallisuudesta.
Client on ESP32-mikroprosessorikortti

Client lähettelee datapaketeita epäsäännöllisin välein huonon kuuluvuuden yli. Olisi hyvä saada serveriltä kuittaus onnistuneesta kopituksesta.
En haluaisi avata http-porttia.

12
Minulla on ESP32, joka lähettää tasaisena virtana pieniä indeksoituja TCP-paketeita samassa lan:ssa olevalle serverille.
Serveri tulostaa ne ruudulle komennolla
nc -lk 9999
Kaikki hyvin, jos en häiritse systeemiä

Jos boottaan ESP32:n, nc:n tulostus pysähtyy. Mitään ei tule ruudulle.
Jos nyt painan enteriä serverillä, nc tulostaa ensimmäiset kaksi saamaansa pakettia: Index=1 ja index=2 ja lähtee sen jälkeen tulostamaan viimeisiä paketeita,:index=92, index=93 ....

En ole löytänyt tapaa, jolla nc:n saisi muuttamaan tapojaan.

ESP32:lla pyörivä ohjelma on 1100 riviä pitkä, joten en viitsi kopioida sitä tähän.
Tällä nc:n omituisuudella ei ole suurta vaikutusta, koska serverin scripti resetoidaan kolmen minuutin välein, eivätkä hukkuneet paketit aiheuta hengenvaaraa.
Ainoastaan ESP32:n resetoinnin / käynnistämisen jälkeinen ensimmäinen paketti on jossain määrin kriittinen.
Asia lähinnä huvittaa ja harmittaa hieman.

13
Itse käytän localsend tiedostojen lähettelyyn ja Simplenote muistiinpanojen kirjoitteluun
Molemmat toimivat Linuxissa ja Arduinossa. Ilmeisesti myös Wintoosassa, mutta en ole kokeillut.

14
Ubuntu tietokoneissa / Vs: ei yhdistä verkkoon
« : 24.03.25 - klo:22.03 »
Tässä olisi jollekin mukava iltapuhde. Tehdä ISO-paketin avuksi ohjelma, jonka voisi ladata samalle ulkoiselle kovalevylle, jolle on jo ladattu ISO-paketti.
 Kun tuon EXE:n käynnistäisi, se tekisi kaikki tarvittavat käsiliikkeet Linuxin asentamiseksi joko winskin päälle, viereen, ulkoiselle levylle tai tikulle.

Ei nyt tule mieleen ohjelmaa, joka tuon tekisi. Olen aina tehnyt homman siten, että olen ladannut ISO:n sisäiselle levylle ja avannut sen sieltä ulkoiselle medialle.

15
Yleistä keskustelua / NC Send & Receive
« : 24.03.25 - klo:21.57 »
Rakentelin esp8266-01:lle ohjauslaitetta, jota ohjataan nettisivun kautta
Tiedon siirtäminen ESP:n ja serverin välillä yhden portin kautta osoittautui huonosti dokumentoiduksi ja hankalaksi.

Keksin lopulta ihan oman tempun:

val=$(nc -l $port <<< "Serveriltä terveisiä: $num"); echo "  ESP lähetti: $val"

KORJAUS: tuosta loitsusta on näemä unohtunut parametri -w1, eli "nc -w1 -l $port ..."
Iman tätä  scripti jää jumiin, kun ESP boottaa.

Tässä NC vastaanottaa ESP:ltä merkkijonon muuttujaan val ja saman tien lähettää  merkkijonon "TEST $num".
NC:lle jää putki auki vastaanotossa, joten se huutaa samaan putkeen. Serverin ei edes tarvitse tietää, mistä huuto tuli.
( Tietenkin datan keruuta suorittava ESP lähettää IP:nsä osana datavirtaa määrätyin välein. )

Tämä olisi onnistunut myös käyttäen kahta porttia, mutta käytän ESP:n päässä aiemmin rakentamaani ohjelmistoa, enkä viitsi tehdä siihen isoja muutoksia.

Käytän tätä sisäverkossa, mutta pitää joku päivä kokeilla, toimiiko tämä 4G:n yli GPStrackerille.

16
Laitealue / Vs: Suorittimien lukumäärä
« : 12.03.25 - klo:14.09 »
En ole itse kokkeillut, mutta kaveri, joka ajaa raskasta laskentaa painottaa ytimiä. Hänestä säikeistä ei ole hyötyä.
Saattaa olla, että säikeet nopeuttavat jotain operaatioita, mutta ei sellaista teholaskentaa, kuin hän suorittaa.

17
Jos langallinen (wired) verkko ei toimi, kokeile ensin:
nmcli -o
Jos sen tulostuksesta löytyy rivi
"Realtek RTL8111/8168/8411"
Voit jatkaa tämän ohjeen lukemista.

- Mene osoitteeseen https://www.realtek.com/Download/List?cate_id=584
- Hae tiedosto GBE Ethernet LINUX driver r8168 for kernel up to 6.12
- Avaa tiedosto
- Suorita autorun.sh

Testaa.

Oma koneeni Acer Aspire V3 -471 tokeni tällä



18
Yleistä keskustelua / Vs: Tätä ei häpeä tunnustaa
« : 13.02.25 - klo:14.52 »
Itse hieman häpeilen forumeilla kirjailemista, koska minulla on muutenkin tapana kirjoitella pitkiä jorinoita, enkä haluaisi kiusata niillä ihmisiä.

Tähän saa kyllä joku muukin kertoa tarinansa jatkoksi.

Sivuhuomiona tuosta YABasicista:
Kielen editori ei hyväksy kaarisulkuja.
Sulut eivät ole missään kielessä täydellisen välttämättömiä ohjelman toiminnan kannalta. Tosin esim C:ssä ja php:ssäsuluilla kerrotaan kääntäjälle, mistä jotain alkaa ja mistä loppuu.
Basic:ssa ja bash:ssa käytetään fi ja next -täytesanoja.
Mikään ei estä, että Basic-koodin sekaan saisi lisätä kaarisulkuja, tulkki vaan ohittaisi ne, kuten blancotkin.
YaBasic on vanha järjestelmä. Viimeisimmät fiksaukset ovat kuitenkin vuoden 2025 tammikuulta, joten joku vielä ylläpitää sitä. Keskustelupalstaa tai kehittäjän osoitetta ei kuitenkaan löydy.

YaBasicista on olemassa tuoreempi forkki YAB, johon en ole vielä ehtinyt tutustua.

Yabasic:n syntaksi on hyvin lähellä CBMBasic:a, johon en myöskään ole ehtinyt tutustua.
Niinsanotut 'standardi-Baasicit' ovat kuin EU:n virkamiesten kötöstyksiä: paljon direktiivejä, mutta varsinaista ohjelmaa ei löydy.

Paras Basic olisi minusta sellainen, jonka syntaksi olisi sama IDE:ssä ja terminaalissa ja johon olisi tarjolla kääntäjä.

Eräässä artikkelissa puhuttiin kääntäjästä, joka ottaa käännökseen vain osia kirjastosta. Jäin ihmettelemään, onko sellaisiakin vielä, jotka lataavat koko kirjaston käännetyn ohjelman sisälle.
Linuxissa käännettävä paketti pystyy olemaan pieni, jos kirjastoja ei kopioida paketin sisään. Harmittavasti Linuxin rungon kokoa on kasvattamassa tolkuton määrä eri ohjelmointiympäristöjen kirjastoja.

19
Yleistä keskustelua / Vs: Tätä ei häpeä tunnustaa
« : 12.02.25 - klo:23.05 »
Tuo linkkisi on loistava ;)

Se mammutti.
Olin menossa erääseen yritykseen tekemään opastusjärjestelmää heidän rakentamalleen pään alueen rgt-kuvauslaitteistolle.
Työhönotossa piirsin heidän eteensä, mikä heidän senhetkisessä järjestelmässään oli pielessä ja mitä pitäisi tehdä.
Työhönottoon varattu tunti venyi lounaan yli vielä useamman tunnin.
Joten seuraavat viisi vuotta ajoin raskasta matematiikkaa järjestelmän osien kehittelyssä.

Kun tilanne alkoi rauhoittua, päätin, että se alkuperäinenkin opastussysteemi pitää ottaa työn alle.
Asetin järjestelmälle rajat: sen pitää pystyä hoitamaan 999 eri vaihtoehtoista käyttötapaa, neuvoa käyttäjää kuvallisesti ja teksteillä ja sisältää valikkorakenne, joka on niin yksinkertainen, että peruskäyttäjä osaa käyttää sitä.
Lisävaatimuksena oli, että se on sovitettavissa yksinkertaisesti kaikille kielialueille ja että se mahtuu pakattuna yhdelle disketille.

Ratkaisuna oli hakupuu, jonka jokaisessa haarassa oli kuusitoista haaraa. Jokaiseen haaraan pystyi liittämään vapaamuotoista grafiikkaa ja tekstiä. Jokainen haara oli samalla sivu, jossa käyttäjä valitsi haaran, jota lähteä seuraamaan. Jokaisella sivulla oli värikoodattuja osia.
Grafiikka oli suhteellisen yksinkertaista koostuen yksivärisistä polynomi-käyristä ja palloista. Tälläisiä kuvia tuli kuitenkin lopulta lähes 2000 kpl, joten piti kehittää järjestelmä, jolla kuvat sai tiivistettyä. Syntyi eräänlainen tietokantajärjestelmä alkiokoordinaateista. Tekstit sentään olivat perustekstiä, mutta pakkasin ne samaan tietokantaan kuvien kanssa.

Ohjemaa pystyi käyttämään näppäimistöllä, hiirellä, touchscreenillä ja itse rakennetulla ohjauslaitteella. Hiiren käyttö MSDOS-aikaan aiheutti kulmakarvojen nostelua.

Koko ohjelma syntyi QB45:llä ja oli kooltaan maksimi 64kB. Apuohjelmina oli ainoastaan tekstieditori ja translaattori, jolla ohjelman tekstit pystyi kääntämään halutulle kielelle.
Varsinaista ylläpitoa ei kaivattu. Käsitin, että pakettia käytettiin vielä WinXP aikana, vaikka rakensin sen alkujaan MSDOS:lle.

Kun sain paketin kasaan, kysyttiin kokouksessa, miten tämän hinta mielestäni muodostuu.
Minun näkemykseni oli, että ohjelma on ilmaisen, Jaetaan sitä messuilla kaikille halukkaille, jotta he pystyvät tutustumaan järjestelmään ja näkemään, miten varsinainen laite täyttää heidän tarpeensa. Tällä mentiin.

Ensimmäisillä messuilla Texasissa käveli eteeni kaveri rehuisessa paidassa ja kuluneissa farkuissa. Kertoi tutkineensa ohjelmaani jo etukäteen ja tilaavansa saman tien seitsemän laitetta. Ottaen huomioon, että laitteen hinta oli n. 600'000mk, eli nyt n. 600'000€, oli hyvä, että osasin yllätykseltäni hoitaa tilauksen kotiin.
Noilla messuilla jaoin n. 50 diskettiä, eivätkä asiakkaat olleet mitään satunnaisia ohikulkijoita.

20
Mikä on oikea permissio kirjastotiedostoille ?

Jouduin asentamaan Arduino IDE:n kokonaan uudestaan päivitettyäni Linux Mint 19 -> 22.1.
Asennuksen jälkeen yritin kääntää ESP32:lle kirjoittamaani ohjelmaa, joka on aiemmin kääntynyt nätisti.
Sain virheilmoituksen, "error while loading shared libraries: libz.so.1"

Aikani kokeiltuani netistä löytämiäni ohjeita tein 'chmod 755 /usr/lib/x86_64-linux-gnu/libz.so.1.3"
(alkupetäinen permissio oli 644)
Tämän jälkeen käännös onnistui

Olen aina luullut, että library ei ole suoritettava tiedosto.

Sivuja: [1] 2 3 ... 35