Permalänk
Medlem

Editera en viss fil

Hej,

På vårt företag använder vi tunna klienter från HP som sedan ansluter in till terminalservrar.
Dessa tunna klienter kör ett Linux operativsystem som heter ThinPro.

Jag försöker att editera en fil enligt en manual från HP, men den filen låter sig inte ändras hur jag än gör.
Filen i fråga ligger här: /proc/net/ipeak0/config/system
Försöker jag skapa en ny fil i samma katalog via guit texthanterare så får jag till svar "no such file or directory"

Efter att ha googlat lite så verkar det som att filer som ligger i denna sökväg inte går att editera. Stämmer det? Varför föreslår i så fall HP att man ska ändra däri?

Jag klistrar in allt som står på sidan här nedan så ni kan se vad det står (mycket text)

--------------------------------------------------------------------------------------------------------

system
Description
The /proc/net/<ipeak0/1/2>/config/system file specifies the following parameters:
• opMode: Set the operational mode of HP Velocity.
• liveTcpMode: Set the mode HP Velocity uses to provide optimization.
• liveWiFiEnable: Accelerate application flows by leveraging Wi-Fi multimedia standards to minimize latency and
prioritize HP Velocity traffic. This ensures that HP Velocity-protected flows experience lower latency and jitter, and
higher throughput.
• ipOptionMark: Use the IP option beacon (0x880477FB) for UDP flows.
• tcpOptionMark: Use the TCP option beacon (0x01000000 and 0x00000000) for TCP flows.
• mtu: The MTU that can be processed within the network.
Read / Write
• Read / Write: Any single value using a string with the format <parameter> = <value>.
Parameters
Table 22: ./config/system parameters
Note: When the IP option beacon (ipOptionMark) or TCP option beacon (tcpOptionMark) setting is enabled, HP Velocity
adds up to 4 bytes of data to IP or TCP headers. This is in compliance with RFC 791 and RFC 793. Some applications might
not be compliant with RFC 791 or RFC 793, and as a result might not be able to process IP or TCP Option beacons. If this
occurs, disabling the IP option beacon or TCP option beacon setting should resolve the issue.

Visa signatur

Mac mini 2018 with external GPU over Thundelbolt 3 - Radeon RX580

Permalänk
Medlem

Vart står det att du ska ändra filer i /proc? Och det låter konstigt om du ska redigera textfiler där. Det är inte du som har missuppfattat något?

Visa signatur

Spara på minnen, inte saker.

Permalänk
Medlem

Det man kan göra, är att echo:a ut värden.
Kollar du på sida 41: http://h20628.www2.hp.com/km-ext/kmcsdirect/emr_na-c04867252-...

Visa signatur

i7-6700K | MSI Z170A | MSI 1080 8GB | 16GB Kingston HyperX | Intel 600P 256GB | Samsung EVO Basic 840 250GB x2 raid 0 | Corsair RM 750W | 3 x Dell U2414H

Permalänk
Medlem
Skrivet av Hund:

Vart står det att du ska ändra filer i /proc? Och det låter konstigt om du ska redigera textfiler där. Det är inte du som har missuppfattat något?

Det står i det jag klistrade in ovan och är taget från HPs Velocity manual.

Skickades från m.sweclockers.com

Visa signatur

Mac mini 2018 with external GPU over Thundelbolt 3 - Radeon RX580

Permalänk
Medlem
Skrivet av gn1p:

Det man kan göra, är att echo:a ut värden.
Kollar du på sida 41: http://h20628.www2.hp.com/km-ext/kmcsdirect/emr_na-c04867252-...

Det du länkar till är från samma manual som jag klistrade in från. Sidan innan tror jag. Dock förstår jag inte.

Som jag tolkar det ska jag editera filen jag visade på som ligger i /proc/... Men hur menar du?

Skickades från m.sweclockers.com

Visa signatur

Mac mini 2018 with external GPU over Thundelbolt 3 - Radeon RX580

Permalänk
Medlem

Ursäkta för att jag går OT, men det finns ingenting som heter "editera".

Visa signatur

It’s more fun to compute.

Permalänk
Hedersmedlem
Skrivet av Bejje:

Jag försöker att editera en fil enligt en manual från HP, men den filen låter sig inte ändras hur jag än gör.
Filen i fråga ligger här: /proc/net/ipeak0/config/system
Försöker jag skapa en ny fil i samma katalog via guit texthanterare så får jag till svar "no such file or directory"

Efter att ha googlat lite så verkar det som att filer som ligger i denna sökväg inte går att editera. Stämmer det? Varför föreslår i så fall HP att man ska ändra däri?

"Filerna" i /proc är inte filer i meningen så som en textfil: de är snarare ögonblicksbilder som presenteras av kärnan i en filstruktur som man kan läsa, och i vissa fall även ändra genom att skicka nya värden via STDIN.

Att /proc är en speciell katalog kan man notera genom att köra ls -l /proc. De flesta filer rapporteras med filstorlek 0, men ändå verkar de innehålla information:

$ ls -l /proc/uptime -r--r--r-- 1 root root 0 dec 5 21:42 /proc/uptime $ cat /proc/uptime 33476703.36 66344373.37 $ cat /proc/uptime 33476703.96 66344374.51 $ cat /proc/uptime 33476704.68 66344375.94

Inte nog med att "filen" innehåller information, den verkar även uppdateras hela tiden. Vad man i praktiken ser är en följd av filosofin att allt är en fil.

Ändra värden genom att omdirigera dem genom STDIN till rätt ändpunkt, liksom det står i manualen @gn1p länkade. Kärnan kommer läsa denna ström och förändra parametrar därefter.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem
Skrivet av phz:

"Filerna" i /proc är inte filer i meningen så som en textfil: de är snarare ögonblicksbilder som presenteras av kärnan i en filstruktur som man kan läsa, och i vissa fall även ändra genom att skicka nya värden via STDIN.

Att /proc är en speciell katalog kan man notera genom att köra ls -l /proc. De flesta filer rapporteras med filstorlek 0, men ändå verkar de innehålla information:

$ ls -l /proc/uptime -r--r--r-- 1 root root 0 dec 5 21:42 /proc/uptime $ cat /proc/uptime 33476703.36 66344373.37 $ cat /proc/uptime 33476703.96 66344374.51 $ cat /proc/uptime 33476704.68 66344375.94

Inte nog med att "filen" innehåller information, den verkar även uppdateras hela tiden. Vad man i praktiken ser är en följd av filosofin att allt är en fil.

Ändra värden genom att omdirigera dem genom STDIN till rätt ändpunkt, liksom det står i manualen @gn1p länkade. Kärnan kommer läsa denna ström och förändra parametrar därefter.

Tack, jag försöker förstå manualen, men jag gör det verkligen inte.
För info, om du kollar i samma manual på sidan 38 så nämns något som kallas "ipOptionMark" i en fil. Detta värde behöver jag ändra från 1 till 0, men hur om jag inte kan göra det i den fil som omnämns på sidan 38? Uppskattar verkligen om du kan förklara det för mig då det skulle lösa ett jättestort problem vi har på vår arbetsplats.

Visa signatur

Mac mini 2018 with external GPU over Thundelbolt 3 - Radeon RX580

Permalänk
Medlem

@Bejje: Precis som alla andra påpekat ovan är filerna i /proc inga "riktiga" filer, utan representationer av minnet i enskilda processer och din kernel. Du kan t.ex. köra $ cat /proc/<pid>/cmdline på ett process-ID så får du se vad processen startades som.

För att "skriva" till filer i /proc/net kan du prova t.ex. $ echo "ipOptionMark 1" > /proc/net/ipeak0/config/system, men det verkar konstigt att man *måste* göra på det sättet. Normalt kan man använda /sbin/sysctl för att ändra värden i /proc, kanske det går i det här fallet också?

Permalänk
Skrivet av Dreijer:

Ursäkta för att jag går OT, men det finns ingenting som heter "editera".

Ursäkta för ännu mer OT men editera är ett ganska vedertaget uttryck och finns även med i saol, "redigera text eller program i en editor".

Permalänk
Hedersmedlem
Skrivet av Bejje:

Tack, jag försöker förstå manualen, men jag gör det verkligen inte.
För info, om du kollar i samma manual på sidan 38 så nämns något som kallas "ipOptionMark" i en fil. Detta värde behöver jag ändra från 1 till 0, men hur om jag inte kan göra det i den fil som omnämns på sidan 38? Uppskattar verkligen om du kan förklara det för mig då det skulle lösa ett jättestort problem vi har på vår arbetsplats.

Jag skulle försöka med något liknande vad som beskrivs i steg 4 och 5 på sidan 41 i manualen som länkades:

# echo ipOptionMark=0 > /proc/net/ipeak0/config/system # echo commit=1 > /proc/net/ipeak0/config/commit

där # betecknar att kommandona ska köras med roots rättigheter.

Notera att det du skriver till /proc bara håller för nuvarande session, och att det kommer rensas efter omstart. Se andra alternativ för beständiga ändringar.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem
Skrivet av FrazzorXx:

Ursäkta för ännu mer OT men editera är ett ganska vedertaget uttryck och finns även med i saol, "redigera text eller program i en editor".

Kunde knappt tro mina ögon.

Visa signatur

It’s more fun to compute.

Permalänk
Medlem
Skrivet av phz:

Jag skulle försöka med något liknande vad som beskrivs i steg 4 och 5 på sidan 41 i manualen som länkades:

# echo ipOptionMark=0 > /proc/net/ipeak0/config/system # echo commit=1 > /proc/net/ipeak0/config/commit

där # betecknar att kommandona ska köras med roots rättigheter.

Notera att det du skriver till /proc bara håller för nuvarande session, och att det kommer rensas efter omstart. Se andra alternativ för beständiga ändringar.

Ja och det är väl ingen bra lösning. Tycker att man kan få riktigt bra hjälp i t.ex. forum för Ubuntu eller liknande, men HP's manualer är inte det bästa. Om man inte kan editera den fil de visar på. Varför tar de då ens upp denna fil? Jag har öppnat den och den post jag vill ändra finns däri mycket riktigt, men det hjälper ju inte att dom påtalar det om jag ändå inte kan göra något med den filen eftersom den egentligen inte finns eller hur man nu ska uttrycka det.

Hade de velat gett bra hjälp så hade de istället hänvisat mig till en fil jag jag göra ändringar i som också är beständiga. Om inte det finns, varför nämner dom ens detta?

Vad det hela handlar om är IP-telefoni som körs i Linuxvarianten ThinPro från HP. När detta värde som jag började att visa är satt till 1 så ändrar det i QoS taggarna och gör at IP-telefonin blir ostabil. Genom att stänga av ipoptionsmark som det heter så slipper vi det problemet.

Det hela har att göra med något som kallas HP Velocity i ThinPro som styr just QoS. Man kan disabla HP Velocity i GUIt och det hjälper en hel del, men fortfarande ligger något kvar där i bakgrunden och pillar på QoS taggarna och enligt vad jag och andra läst oss till så måste detta värde stängas av.

Visa signatur

Mac mini 2018 with external GPU over Thundelbolt 3 - Radeon RX580

Permalänk
Medlem
Skrivet av phz:

Jag skulle försöka med något liknande vad som beskrivs i steg 4 och 5 på sidan 41 i manualen som länkades:

# echo ipOptionMark=0 > /proc/net/ipeak0/config/system # echo commit=1 > /proc/net/ipeak0/config/commit

där # betecknar att kommandona ska köras med roots rättigheter.

Notera att det du skriver till /proc bara håller för nuvarande session, och att det kommer rensas efter omstart. Se andra alternativ för beständiga ändringar.

Jag var lite trög tror jag när jag läste detta först. Att göra på det sättet avhjälper det problem vi har, så lösningen är rätt, men som du säger så fastnar inte inställningarna kvar efter reboot, så problemet är, hur får man det att fastna? Kan man slänga in samma inställning i någon annan fil i systemet som läses in vid uppstart och i så fall vilken?

Om det är totalt okänt vilken fil man kan använda, kan jag istället skapa något slags script som kör "echo ipOptionMark=0 > /proc/net/ipeak0/config/system" samt den andra raden för commit? Hur skulle det scriptet kunna se ut och var ska det läggas för att det körs när systemet startar upp eller när användaren loggar in?

Visa signatur

Mac mini 2018 with external GPU over Thundelbolt 3 - Radeon RX580

Permalänk
Hedersmedlem
Skrivet av Bejje:

Jag var lite trög tror jag när jag läste detta först. Att göra på det sättet avhjälper det problem vi har, så lösningen är rätt, men som du säger så fastnar inte inställningarna kvar efter reboot, så problemet är, hur får man det att fastna? Kan man slänga in samma inställning i någon annan fil i systemet som läses in vid uppstart och i så fall vilken?

Om det är totalt okänt vilken fil man kan använda, kan jag istället skapa något slags script som kör "echo ipOptionMark=0 > /proc/net/ipeak0/config/system" samt den andra raden för commit? Hur skulle det scriptet kunna se ut och var ska det läggas för att det körs när systemet startar upp eller när användaren loggar in?

Det är lite okonventionellt att ha ett konfigurationsgränssnitt i just /proc/net som vanligen används för att rapportera statistik. Vanligare är att erbjuda konfiguration genom /proc/sys, vilket också är enkelt konfigurerbart via sysctl som läser uppstartskonfiguration i exempelvis /etc/sysctl.conf.

I detta fall skulle det enklaste sannolikt vara att lägga till ett shellskript som körs vid uppstart och innehåller just de kommandon ni vill köra. Exakt hur detta adderas beror på systemet, men det går säkert enklare att hitta information om detta.

Skapa en fil som innehåller

#!/bin/sh echo ipOptionMark=0 > /proc/net/ipeak0/config/system echo commit=1 > /proc/net/ipeak0/config/commit

och se till att exekvera den med root-rättigheter vid boot. Som en heads-up så behöver detta skript köras efter att gränssnittet i /proc/net/ipeak0 är tillgängligt, men det svarar sannolikt tillräckligt i boot-processen för att det inte ska uppstå några problem med detta.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.