Trädvy Permalänk
Medlem
Plats
Kalmar
Registrerad
Apr 2007

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.

En massa gamla jävla hårddiskar som som fyller upp datorn och får den att i kombination med processorn och grafikkortet även fungera som element när man fryser

Trädvy Permalänk
Medlem
Plats
$HOME
Registrerad
Jun 2006

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?

Arch Linux ~ Journal | Skärmskott | Punktfiler

Trädvy Permalänk
Medlem
Plats
Skövde
Registrerad
Maj 2010

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-...

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

Trädvy Permalänk
Medlem
Plats
Kalmar
Registrerad
Apr 2007
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

En massa gamla jävla hårddiskar som som fyller upp datorn och får den att i kombination med processorn och grafikkortet även fungera som element när man fryser

Trädvy Permalänk
Medlem
Plats
Kalmar
Registrerad
Apr 2007
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

En massa gamla jävla hårddiskar som som fyller upp datorn och får den att i kombination med processorn och grafikkortet även fungera som element när man fryser

Trädvy Permalänk
Medlem
Registrerad
Dec 2009

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

Crucial Ballistix Tactical 16GB 2750Mhz ■ Asus Z170-A ■ MSI GTX 1070 Gaming X ■ Intel i5 6600k 4.5Ghz
be quiet! Pure Rock ■ Samsung EVO 850 250GB
FD Define S ■ EVGA Supernova G2 650W
Seagate 7200RPM 1TB ■ Ducky ONE G&Y PBT, MX Blue ■ Logitech G403
BenQ 24" XL2430T

Trädvy Permalänk
Forumledare
Registrerad
Okt 2002
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.

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

Trädvy Permalänk
Medlem
Plats
Kalmar
Registrerad
Apr 2007
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.

En massa gamla jävla hårddiskar som som fyller upp datorn och får den att i kombination med processorn och grafikkortet även fungera som element när man fryser

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2015

@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å?

Stationär: i7-6700k, Asus Strix 1080 Ti 32 GB G.Skill TridentZ, Define Mini C TG Laptop: Lenovo Yoga 3 Pro Core M 5Y71 Tablet: Surface Pro 3 i7-4650U

Trädvy Permalänk
Medlem
Registrerad
Okt 2012
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".

Trädvy Permalänk
Forumledare
Registrerad
Okt 2002
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.

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

Trädvy Permalänk
Medlem
Registrerad
Dec 2009
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.

Crucial Ballistix Tactical 16GB 2750Mhz ■ Asus Z170-A ■ MSI GTX 1070 Gaming X ■ Intel i5 6600k 4.5Ghz
be quiet! Pure Rock ■ Samsung EVO 850 250GB
FD Define S ■ EVGA Supernova G2 650W
Seagate 7200RPM 1TB ■ Ducky ONE G&Y PBT, MX Blue ■ Logitech G403
BenQ 24" XL2430T

Trädvy Permalänk
Medlem
Plats
Kalmar
Registrerad
Apr 2007
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.

En massa gamla jävla hårddiskar som som fyller upp datorn och får den att i kombination med processorn och grafikkortet även fungera som element när man fryser

Trädvy Permalänk
Medlem
Plats
Kalmar
Registrerad
Apr 2007
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?

En massa gamla jävla hårddiskar som som fyller upp datorn och får den att i kombination med processorn och grafikkortet även fungera som element när man fryser

Trädvy Permalänk
Forumledare
Registrerad
Okt 2002
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.

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