Dabar yra 2010-09-09 08:38

Visos datos yra UTC + 2 valandos




Naujos temos kūrimas Atsakyti į temą  [ 16 pranešimai(ų) ]  Eiti į 1, 2  Kitas
Autorius Žinutė
 Pranešimo tema: Project Linux Server
StandartinėParašytas: 2010-06-19 21:14 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
Aptarimas vyksta cia: http://forumas.modding.lt/viewtopic.php?f=35&t=4827

Projekto tikslas: pasileisti home server ant linux sistemos.

HW:
D945GCLF + Intel Atom 230 1.6Ghz single core
1GB RAM
WD EADS20 HDD 2TB
Linksys WLAN
Linksys Switch
APC UPS

Butinas funkcionalumas (padaryta jau pries kury laika):
Internet sharing (WLAN -> ETH)
DHCP DNS NTP services
File sharing
torrent downloading with scheduler and WEBUI
remote control with GUI (VNC)
unattended use

Funkcionalumas For Fun:
apache su home page
prieiga y servo skriptus per PHP
UPS statuso setebejimo programa + jai prieiga per PHP
HDD SMART statuso setebjimo programa + jai prieiga per PHP
other status via PHP?
Network boot server
folding@home
configu editinimas via PHP?

[Edit:] dabar surasiau ant greicio tai sitas headeris gali keistis


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-06-19 21:31 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
Tai pradekima nuo paciu pradziu :)

Ant D945GCLF ir D945GCLF2 motininiu man neveikia Ubuntu 9.10 x64 ir 10.04 x64. Bandziau ant abieju kompu abi versijas ir gaunamas taspats erroras: "File System Not Found". O ydomiausia, kad tai ivyksta iskart pradedant krauti is CD/Flash.

Taip kad likau su tokiu variantu: Ubuntu 9.04 x64. Cia viskas susirase ir iskart veikia.

Veliau bus papasakota apie visa konfiginima. Pprofams bus neydomu ir sakys, kad galima kazka geriau badaryt, bet kai kam gal ir pravers :)

O pradziai apie keista BUGa:

Ubuntu (ne server versija) kai y kompa nera pajungtas monitorius neuzsikrauna.
Po pakibimo pajungiau monika ir pamaciau stai tokio tipo errora: "Ubuntu is running in low graphics mode".
Pasirodo X neradus moniko jis ima ir supanikuoja :))

Sprendimas redaguoti /etc/X11/xorg.conf . Siaip sis configas yra ignoruojamas, bet tuo atveju kai autodetec failina yra naudojamas ten deklaruotas konfigas.

O stai ir configas:
Kodas:
Section "Device"
   Identifier   "Configured Video Device"
        Driver          "vesa"
EndSection

Section "Monitor"
   Identifier   "Configured Monitor"
EndSection

Section "Screen"
   Identifier   "Default Screen"
   Monitor      "Configured Monitor"
   Device      "Configured Video Device"
        SubSection "Display"
              Depth 24
              Modes "800x600"
        EndSubSection
EndSection


Nesunku atspeti, kad 800x600 ysiraso moniko rezuliucija kuri bus vienintele naudojama ir matoma prisijungus per VNC :)

VNC Server paleidimas labai paprastas: System->Preferences->Remote Desktop ir suclickini pele.


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-06-19 21:47 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
Step 2: Internet sharing.

Su IP Tables visai neturiu noro knistis tai susigooglinau GUI Toolsa: FireStarter.

Procedura pakankamai paprasta:
1. Susirasom dhcp-server ir firestarter
2. is network-manager ant eth0 uzstatom manual config su norimu IP ir 0.0.0.0 getaway
3. pasileidziam firestarter ir mus pasitinka wizardas kur suclickinam ir turim network sharing ir sukonfiginta DHCP serveri
4. enablinam FireWall ir niekas nebeveikia
5. einam y Policy Tab ir allowinam siuos portus is LAN puses:
5900 = VNC
445, 137, 138, 139 = win share
123 = NTP
53 = DNS
80 = HTTP
67 = DHCP

Nuo sio momento internetas veike ir seimyna prisikele is akmens amziaus :)


Paskutinį kartą redagavo rkr 2010-06-20 09:42. Iš viso redaguota 1 kartą.

Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-06-19 22:02 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
Step 3: DNS serveris

Susiinstaliuojam bind9 ir sukuriam siuos failus:

/etc/bind/named.conf.local
Kodas:
zone "home" {
        type master;
        file "/etc/bind/zones/home.db";
        };

zone "0.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/zones/rev.0.168.192.in-addr.arpa";
};


Tai sukuria Primary ir Reverse Look-UP zonas. Kam reikalinga Reverse zona iki dabar nezinau, bet be jos neveikia.
Tekste matomos nuorodos y .db ir .arpa failus kur bus laikomi vardu ir IP sarasai. Toliau bus ir failai:

/etc/bind/zones/home.db
Kodas:
home. IN SOA servas.home. admin.home. (
2009081401
28800
3600
604800
38400
);

home. IN NS servas.home.

servas IN A 192.168.0.1
hp     IN A 192.168.0.150
wlan   IN A 192.168.0.151


Pirmi skaiciai yra Name Server configas (time out ir panasiai). O toliau seka subdomenai ir ju IP.

/etc/bind/zones/rev.0.168.192.in-addr.arpa
Kodas:
@ IN SOA servas.home. admin.home. (
2006081401;
28800;
604800;
604800;
86400
)

    IN NS  servas.home.
1   IN PTR home.
150 IN PTR hp.home.
151 IN PTR wlan.home.


Reverse Look Up failo vardas turi buti tokio formato (kazkodel). O priekyje esantys skaiciai yra servo atvirkscio IP adreso pradzia.

Taip pat reikia nurodyti kam siusti uzklausas, kai vietinis servas negali resolvint tokio vardo (visas isorinis internetas).
Tam reikia paredaguoto stai sy faila:

/etc/bind/named.conf.options
Kodas:
options {
   directory "/var/cache/bind";

    forwarders {
           212.59.1.1;
                212.59.2.2;
    };

   auth-nxdomain no;
   listen-on-v6 { any; };
};


Ten vietoj siu IP ysiraso interneto tiekejo DNS servai. Cia pateikti Zebros.

Parestartuojam bind9.
Tada kokiam nors kliente nurodom kad naudoti 192.168.0.1 kaip DNS server ir papinginam servas.home . Veikia!!! :thumb:

Dar ant Ubuntu galima naudoti dig servas.home ir bus parodyta kury DNS serva naudojo ir daug visokios kitos info.

Neskaitant to, kad reikia nurodyti rankiniu budu DNS servas- viskas veikia.

Cituoti:
BackBrain
Primary Look-UP zona hostname vertimas i IP adresa.
Reverse Look-UP zona IP vertimas i HosName.

db ir arpa failuose saudomi irasai, ip-hostname transliacijos, galima sakyti kad tai dns duomenu bazes.
Ir versijavimo irasas SOA start of authority, naudojamas replikacijai kad atsirinkti kuri replika naujausia.
Zonos buna primary secondary ir stub (ira dar viena bet ji nenaudojama).


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-06-20 10:04 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
Step 4: DHCP reconfig

Automatinis FireStarter configas manes netenkina. Taigi jy pasiredaguosime y stai toky:

/etc/dhcp3/dhcpd.conf
Kodas:
ddns-update-style interim;
ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {
   option routers 192.168.0.1;
   option subnet-mask 255.255.255.0;
   option domain-name-servers 192.168.0.1;
   option ip-forwarding off;
   range dynamic-bootp 192.168.0.200 192.168.0.250;
   default-lease-time 60480;
   max-lease-time 60480;

        option ntp-servers 192.168.0.1;
        option netbios-name-servers 192.168.0.1;

        host rkr-laptop-lan
           {hardware ethernet 00:19:db:38:51:a4;
            fixed-address 192.168.0.101;}
}


Komentarai:

DNS serveris keiciamas y vietini (network manageris overwritina sita option, bet tai spresim veliau)
Range IP priskiriu koky noriu
Lease time padidinam iki savaites
Yrasom NTP serveri (konfiginsim veliau)
Yrasom NetBios (konfiginsim veliau)
Ir surasom visus vietiniu kompu statinius IP stai tokiu formatu.
MAC adresus galima nurasyt nuo /var/lib/dhcp3/dhcpd.leases kuriame saugomi visi DHCP klientai.

O dabar prie tokios problemos: kai ivyksta WLAN reconnect- Network Manageris ir dhcpd overwritina DNS servo yrasus dhcpd.conf faile.
Sprendimas- paredaguojam stai sy faila: /etc/resolv.conf
Kodas:
nameserver 192.168.0.1


Taciau ir cia esantys name server yra overwritinami, ka mes galime pataisyti su "immunity option". Tam is terminalo ivykdome stai tokia komanda:
Kodas:
sudo chattr +i /etc/resolv.conf

Dabar sis failas yra read-only (galioja net ir ROOT). Taip kad DNS servas liks visada vietinis (DHCPD pasiims value is cia) o dhcpd.conf galesime bet kada redaguoti :)

Norint nuimti imunity option reikia +i pakeisti y -i


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-06-20 11:03 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
Step 5: NTP/WINS

WINS (arba NetBIOS) yra galimybe resolvint kompo vardus y IP (pataisykit jei nusvaigau)

Samba turi integruota WINS serveri ir man rodos jis buna enablintas by default.
But just in case:

/etc/samba/smb.conf
Kodas:
...
   wins support = yes
...


Tam kad linux kompas galetu naudotis siuo service (klientai), reikia i jy surasyti package: winbind
Kodas:
sudo apt-get install winbind


ir paredaguoti stai sio failo eilute: /etc/nsswitch.conf
Kodas:
hosts:          files mdns4_minimal [NOTFOUND=return] dns wins mdns4

Tai yra reikia ydeti WINS yrasa (as dejau po DNS). Cia gaunasi kaip ir seka kokiomis priemonemis jis bandys isversti tavo yrasyta varda y IP.

Papinginam servas ir veikia :)

O dabar NTP:

einam y System->Administration->Time and Date ir parenkam Synchronize. Tuo pacius surasys NTP client ir server. Parenkam koky tais serveri su kuriuo sinchronizuosim musu serva.

Tada einam y /etc/ntp.conf ir pakeiciam sia eilute:
Kodas:
...
broadcast 192.168.0.0
...

Ir allowinam NTP porta (parasyta auksciau)

Tai nebutinai reiskia, kad kompai/yrenginiai pasiims ta network time. Gali reikti suconfigint ir klientus, kad kaip network time server naudotu 192.168.0.1


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-06-20 11:29 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
Step 6: Apache/PHP

Susirasom Apache ir PHP.

Apache internetinis puslapis laikomas: /var/www . Ten ydejau stai toky index.html

Kodas:
<html>

<head>
<title> Rimku home page </title>
</head>

<h1> Linkai y puslapius: </h1>

<a href="http://servas.home:6996">Deluge</a>
<p>
</p>
<a href="http://hp.home">HP_1522n</a>

<p>
</p>
<a href="http://wlan.home">WLAN</a>

<h1> Linkai y logus: </h1>
<a href="leases.txt">IP Leases</a>
<p>
</p>

<h1> Testiniai puslapiai ant PHP: </h1>
<a href="ping.php">ping</a>

</body>
</html>


Cia sudetos nuorodos y kitus yrneginius ir Deluge WEBUI.
Yra viena nuoroda y faila leases.txt, kuris yra symbolic link y /var/lib/dhcp3/dhcpd.leases.
Tai reiskia kad /var/www yra matomas failas leases.txt, kuris is tikruju yra kitur.
Symbolic links sukuriami tokia komanda:
Kodas:
sudo ln -s /var/lib/dhcp3/dhcpd.leases /var/www/leases.txt

Gale matoma nuoroda y testini PHP puslapy:
ping.php
Kodas:
<?php
  $ip = $_SERVER['REMOTE_ADDR'];
  echo "Tavo adresas: ";
  echo $ip;
  exec('ping -c 5 ' . $ip, $out, $val);
  echo "<br>Output:</br>";
  foreach($out as $temp)
    echo "<pre>" . $temp . "</pre>";
?>


Sitai grazina stai toky output:

Cituoti:
Tavo adresas: 192.168.0.101
Output:
PING 192.168.0.101 (192.168.0.101) 56(84) bytes of data.
64 bytes from 192.168.0.101: icmp_seq=1 ttl=64 time=0.267 ms
64 bytes from 192.168.0.101: icmp_seq=2 ttl=64 time=0.295 ms
64 bytes from 192.168.0.101: icmp_seq=3 ttl=64 time=0.265 ms
64 bytes from 192.168.0.101: icmp_seq=4 ttl=64 time=0.278 ms
64 bytes from 192.168.0.101: icmp_seq=5 ttl=64 time=0.328 ms
--- 192.168.0.101 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3998ms
rtt min/avg/max/mdev = 0.265/0.286/0.328/0.029 ms


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-06-20 11:52 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
Step 7: Deluge WEBUI

Ant Ubuntu 9.04 yra by default surasyta senovine Deluge. Tai pabandziau surasyti naujausia stable: 1.2.3.

Package siunciau is sio puslapio: http://packages.debian.org/squeeze/deluge .
Reikejo keleta dependincies surasyti tokia tvarka:

    libboost-system1.42.0_1.42.0-3_amd64.deb
    libboost-filesystem1.42.0_1.42.0-3_amd64.deb
    libboost-python1.42.0_1.42.0-3_amd64.deb
    libssl0.9.8_0.9.8n-1_amd64.deb
    gcc-4.4-base_4.4.4-1_amd64.deb
    libstdc++6_4.4.4-1_amd64.deb
    libboost-thread1.42.0_1.42.0-3_amd64.deb
    libgeoip1_1.4.7~beta3+dfsg-2_amd64.deb
    libtorrent-rasterbar5_0.14.10-2+b1_amd64.deb
    python-libtorrent_0.14.10-2+b1_amd64.deb
    geoip-database_1.4.7~beta3+dfsg-2_all.deb

Ir tada paty deluge:

    deluge-common_1.2.3-1_all.deb
    deluge-gtk_1.2.3-1_all.deb
    deluge_1.2.3-1_all.deb
    deluge-torrent_1.2.3-1_all.deb
    deluge-web_1.2.3-1_all.deb
    deluged_1.2.3-1_all.deb

Tada pasiziurim pasileidziam ir pasiziurim, kad viskas veikia. Jei truks kokio dependencie- susirasti tam paciam puslapy.

Tada viska isjungiam ir gaminam WEBUI:

yrasom stai yokia eilute y failo ~/.config/deluge/auth gala:
Kodas:
deluge:deluge:10

Tai bus prisijungimo prie Deluge daemon user ir pass.

Tada paleidziam Deluge ir nuejus y Preferences/Interface/Classic Mode ir jy disablinam. Viska vel jungiam lauk.
Tada paleidziam deluged (galima y startup ydet per System->Preferences->Start Up Applications)
Tada paleidziam deluge ir yvede 127.0.0.1 ir ta pass bandom prisijungti prie daemon. Gali reiks enablint jo porta (parasytas) arba jungtis per isorini jo IP (192.168.0.1).

Tada pasileidus Deluge kai jau viskas vel veikia einam y preferences ir yjungiam plugina WEBUI.
Tada vedam 192.168.0.1:portas (jy allowinus) ir turi prisijungti y stai toky langa (gali paprasyt nurodyt daemon ir prie jo prisijungt- darom ta paty):

http://deluge-torrent.org/images/screenshots/webui_slate_12x_files.png

Jughu :) Jei nerodo kiek liko vietos arba neaddina torrentu- neprisijungia prie deamono...


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-06-25 11:02 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
Stai ir jau beveik baigiau rasyti programa nuotoliniam UPS monitoringui.

Programinis kodas ir idejos be gailescio pavogti is APCUPSD projekto esancio cia: http://sourceforge.net/projects/apcupsd/ .

Visi komentarai bus sudeti sekanciame poste.

Zemiau pateiktas programinis kodas:

ups.c
Kodas:
#include <usb.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
#include <stropts.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include "hiddev.h"
#include <sys/ioctl.h>
#include "values.c"
#include "printing.c"

void scan(){
   
   int i = -1;
   
   printf("Searching for Vendot ID: %04x\n", APCID);

   usb_init();
   i = usb_find_busses();
   printf("Found busses: %d\n", i);
   i = usb_find_devices();
   printf("Found devices: %d\n", i);

   struct usb_bus* bus;
   struct usb_device* dev;

   bus = usb_get_busses();
   for (bus = usb_busses; bus; bus = bus->next)
       for (dev = bus->devices; dev; dev = dev->next)
       {
          printf("Device: %s:%s - %04x:%04x\n",
              bus->dirname, dev->filename,
              dev->descriptor.idVendor, dev->descriptor.idProduct);
          if(dev->descriptor.idVendor == APCID)
              {
                printf(" -> Found!\n");
                myups = dev;
               }
        }
}

void get()
{
  int rtype[2] = { HID_REPORT_TYPE_INPUT, HID_REPORT_TYPE_FEATURE };

  struct hiddev_report_info rinfo;
  struct hiddev_usage_ref uref;
  struct hiddev_field_info finfo;

  int i; int j; int n;
  fd = open("/dev/usb/hiddev0", O_RDONLY);
  if(fd==-1) printf("device not found\n");

  for(n=0; n<sizeof(rtype)/sizeof(*rtype); n++){
  rinfo.report_type = rtype[n];
  rinfo.report_id = HID_REPORT_ID_FIRST;

  while(ioctl(fd, HIDIOCGREPORTINFO, &rinfo) >= 0)
  {
    for(i=0; i<rinfo.num_fields; i++)
    {
       finfo.report_type = rinfo.report_type;
       finfo.report_id = rinfo.report_id;
       finfo.field_index = i;

       if(ioctl(fd, HIDIOCGFIELDINFO, &finfo)<0)
          printf("error at 2\n");

       memset(&uref, 0, sizeof(uref));
       for(j=0; j<finfo.maxusage; j++){
          uref.report_type = finfo.report_type;
          uref.report_id = finfo.report_id;
          uref.field_index = i;
          uref.usage_index = j;

          if(ioctl(fd, HIDIOCGUCODE, &uref) < 0)
              printf("error at 3\n");

          //printf(" usage code: %x\n", uref.usage_code);

          int k;
          for(k=0; info[k].name != 0; k++)
              if(info[k].address == uref.usage_code)
                 {
                  info[k].found = true;
                  memcpy(&info[k].uref , &uref, sizeof(uref));
                 }

          }
    }
  rinfo.report_id |= HID_REPORT_ID_NEXT;
  }
  }
}

int getValue(struct data info)
{
  //printf("Have static: %x\n", info.address);

  struct hiddev_report_info rinfo;
 
  rinfo.report_type = info.uref.report_type;
  rinfo.report_id = info.uref.report_id;

  if(ioctl(fd, HIDIOCGREPORT, &rinfo)<0)
     printf("error at 4\n");

  if(ioctl(fd, HIDIOCGUSAGE, &info.uref)<0)
     printf("error at 5\n");

  printVal(info.name,info.uref.value);
}

void print_out()
{
   int k;
   for(k=0; info[k].name != 0; k++)
      if(info[k].found)
         getValue(info[k]);
}

int main(void) {

   //scan();
   //find_hiddev(); //need to write
   get();
   print_out();

   exit(0);
}

values.c
Kodas:
int APCID = 1309;
int usb_port;
int usb_dev;
int fd;
struct usb_device *myups;

struct data {
   int name;
   unsigned address;
   bool found;
   struct hiddev_usage_ref uref;
   int type;
   int id;
};

struct data info[] = {
  /* Name Address Found */
  {37, 0x00840035, false }, /*Load Perc*/
  {38, 0x00840044, false }, /*Config Active Power*/
  {1,  0x00850066, false }, /* RemainingCapacity */
  {2,  0x00850068, false }, /* RunTimeToEmpty */
  {36, 0x00840030, false }, /*Voltage*/
  {33, 0x00840040, false }, /*Voltage*/
  {34, 0x00840032, false }, /*Frequency*/
  {35, 0x00840036, false }, /*Tempereture*/

  {24, 0x00850067, false }, /*Full Charge Capicity*/
  {3,  0x00850044, false }, /* Charging */
  {4,  0x00850045, false }, /* Discharging */
  {5,  0x008500d0, false }, /* ACPresent */
  {11, 0x00840073, false }, /* CommunicationLost */
  {12, 0x0085004b, false }, /* NeedReplacement */
  {13, 0x00840065, false }, /* Overload */

  {6,  0x008500d1, false }, /* BatteryPresent */
  {7,  0x00850042, false }, /* BelowRemCapLimit */
  {8,  0x00840068, false }, /* ShutdownRequested */
  {9,  0x00840069, false }, /* ShutdownImminent */

  //{10, 0x00850043, false }, /* RemTimeLimitExpired */
  //{14, 0x008500db, false }, /* VoltageNotRegulated */
  //{15, 0x00840058, false }, /* Test */
  //{16, 0x008400fe, false }, /*Product*/
  //{17, 0x008400ff, false }, /*SerialNumber*/
  //{18, 0x008400fd, false }, /*Manufacturer*/
  //{19, 0x0085008f, false }, /*OEM*/
  //{20, 0x00850089, false }, /*Device chemistry*/
  //{21, 0x0085008b, false }, /*Rechargable*/
  //{22, 0x0085002c, false }, /*Capicity Mode*/
  //{23, 0x00850083, false }, /*Design Capicity*/
  //{25, 0x0085008d, false }, /*Capicity Granurality1*/
  //{26, 0x0085008e, false }, /*Capicity Granurality2*/
  //{27, 0x0085008c, false }, /*Warning  Capicity Limit*/
  //{28, 0x00850029, false }, /*RemCapLimit*/
  //{29, 0x00850085, false }, /*Manufacture Date*/
  //{30, 0x00840057, false }, /*Delay Before ShutDown*/
  //{31, 0x00840055, false }, /*Delay Before Reboot*/
  //{32, 0x0085002a, false }, /*Remaining Time Limit*/
  //{35, 0x0084005a, false }, /*Audible Alarm Control*/
  //{39, 0x00840054, false }, /*High Voltage Transfer*/
  //{40, 0x00840053, false }, /*Low Voltage Transfer*/
  //{41, 0x00840056, false }, /*Delay Before StartUp*/
  //{42, 0x00840001, false }, /*Name*/
  {0,  0x00000000, false }  /* END OF TABLE */
};

printing.c
Kodas:
static int load = 0;
static int power = 0;

void getBool (int k)
{
   if(k==1) printf("TRUE");
      else printf("FALSE");
}

void getPerc (int k)
{
   float val = k/10.0;
   printf("%0.1f%%", val);
}

void getTime (int k)
{
   int min = k / 60;
   int sec = k - min * 60;
   printf("%d minutes %d seconds", min, sec);
}

void getVolt (int k)
{
   float val = k/10.0;
   printf("%0.1f V", val);
}

void getW (int k)
{
   printf("%d W", k);
}

void getPower(float k)
{
   printf("%0.2f W", k);
}

void getFreq (int k)
{
   float val = k/100.0;
   printf("%0.2f Hz", val);
}

void getTemp (int k)
{
   int F = k / 100;
   int C = k - F * 100;
   printf("%d C", C);
}

void printVal(int nr, int val)

   switch (nr)
   {
   case 1 :  printf("Battery Left:       "); getPerc(val);
     break;
   case 2 :  printf("Run Time To Empty:  "); getTime(val);
     break;
   case 3 :  printf("Charging:           "); getBool(val);
     break;
   case 4 :  printf("Discharging:        "); getBool(val);
     break;
   case 5 :  printf("AC Present:         "); getBool(val);
     break;
   case 6 :  printf("Battery Present:    "); getBool(val);
     break;
   case 7 :  printf("Battery Level Good: "); getBool(val+1);
     break;
   case 8 :  printf("ShutDown Requested: "); getBool(val);
     break;
   case 9 :  printf("Shutting Down:      "); getBool(val);
     break;
   case 11 : printf("Communication Good: "); getBool(val+1);
     break;
   case 12 : printf("Need New Battery:   "); getBool(val);
     break;
   case 13 : printf("OverLoad:           "); getBool(val);
     break;
   case 24 : printf("Battery Capicity:   "); getPerc(val*10);
     break;
   case 33 : printf("Voltage Battery:    "); getVolt(val);
     break;
   case 34 : printf("Frequency:          "); getFreq(val);
     break;
   case 35 : printf("Tempereture:        "); getTemp(val);
     break;
   case 36 : printf("Voltage AC:         "); getVolt(val);
     break;
   case 37 : printf("Load:               "); getPerc(val); load = val;
     break;
   case 38 : printf("Max Power:          "); getW(val); power = val;
     break;
   default : printf("unknown val: %d; %d", val, nr);
     break;
   }
   printf("\n");

   if(load != 0 && power != 0)
   {
       float temp = power * load / 1000;
       printf("Power Usage:        "); getPower(temp);
       load = 0; power = 0;
       printf("\n");
   }
}

hiddev.h
Kodas:
#ifndef _HIDDEV_H
#define _HIDDEV_H

/*
*  Copyright (c) 1999-2000 Vojtech Pavlik
*
*  Sponsored by SuSE
*/

/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Should you need to contact me, the author, you can do so either by
* e-mail - mail your message to <vojtech@suse.cz>, or by paper mail:
* Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic
*/

#include <linux/types.h>

/*
* The event structure itself
*/

struct hiddev_event {
   unsigned hid;
   signed int value;
};

struct hiddev_devinfo {
   __u32 bustype;
   __u32 busnum;
   __u32 devnum;
   __u32 ifnum;
   __s16 vendor;
   __s16 product;
   __s16 version;
   __u32 num_applications;
};

struct hiddev_collection_info {
   __u32 index;
   __u32 type;
   __u32 usage;
   __u32 level;
};

#define HID_STRING_SIZE 256
struct hiddev_string_descriptor {
   __s32 index;
   char value[HID_STRING_SIZE];
};

struct hiddev_report_info {
   __u32 report_type;
   __u32 report_id;
   __u32 num_fields;
};

/* To do a GUSAGE/SUSAGE, fill in at least usage_code,  report_type and
* report_id.  Set report_id to REPORT_ID_UNKNOWN if the rest of the fields
* are unknown.  Otherwise use a usage_ref struct filled in from a previous
* successful GUSAGE call to save time.  To actually send a value to the
* device, perform a SUSAGE first, followed by a SREPORT.  An INITREPORT or a
* GREPORT isn't necessary for a GUSAGE to return valid data.
*/
#define HID_REPORT_ID_UNKNOWN 0xffffffff
#define HID_REPORT_ID_FIRST   0x00000100
#define HID_REPORT_ID_NEXT    0x00000200
#define HID_REPORT_ID_MASK    0x000000ff
#define HID_REPORT_ID_MAX     0x000000ff

#define HID_REPORT_TYPE_INPUT   1
#define HID_REPORT_TYPE_OUTPUT   2
#define HID_REPORT_TYPE_FEATURE   3
#define HID_REPORT_TYPE_MIN     1
#define HID_REPORT_TYPE_MAX     3

struct hiddev_field_info {
   __u32 report_type;
   __u32 report_id;
   __u32 field_index;
   __u32 maxusage;
   __u32 flags;
   __u32 physical;      /* physical usage for this field */
   __u32 logical;      /* logical usage for this field */
   __u32 application;      /* application usage for this field */
   __s32 logical_minimum;
   __s32 logical_maximum;
   __s32 physical_minimum;
   __s32 physical_maximum;
   __u32 unit_exponent;
   __u32 unit;
};

/* Fill in report_type, report_id and field_index to get the information on a
* field.
*/
#define HID_FIELD_CONSTANT      0x001
#define HID_FIELD_VARIABLE      0x002
#define HID_FIELD_RELATIVE      0x004
#define HID_FIELD_WRAP         0x008   
#define HID_FIELD_NONLINEAR      0x010
#define HID_FIELD_NO_PREFERRED      0x020
#define HID_FIELD_NULL_STATE      0x040
#define HID_FIELD_VOLATILE      0x080
#define HID_FIELD_BUFFERED_BYTE      0x100

struct hiddev_usage_ref {
   __u32 report_type;
   __u32 report_id;
   __u32 field_index;
   __u32 usage_index;
   __u32 usage_code;
   __s32 value;
};

/* hiddev_usage_ref_multi is used for sending multiple bytes to a control.
* It really manifests itself as setting the value of consecutive usages */
#define HID_MAX_MULTI_USAGES 1024
struct hiddev_usage_ref_multi {
   struct hiddev_usage_ref uref;
   __u32 num_values;
   __s32 values[HID_MAX_MULTI_USAGES];
};

/* FIELD_INDEX_NONE is returned in read() data from the kernel when flags
* is set to (HIDDEV_FLAG_UREF | HIDDEV_FLAG_REPORT) and a new report has
* been sent by the device
*/
#define HID_FIELD_INDEX_NONE 0xffffffff

/*
* Protocol version.
*/

#define HID_VERSION      0x010004

/*
* IOCTLs (0x00 - 0x7f)
*/

#define HIDIOCGVERSION      _IOR('H', 0x01, int)
#define HIDIOCAPPLICATION   _IO('H', 0x02)
#define HIDIOCGDEVINFO      _IOR('H', 0x03, struct hiddev_devinfo)
#define HIDIOCGSTRING      _IOR('H', 0x04, struct hiddev_string_descriptor)
#define HIDIOCINITREPORT   _IO('H', 0x05)
#define HIDIOCGNAME(len)   _IOC(_IOC_READ, 'H', 0x06, len)
#define HIDIOCGREPORT      _IOW('H', 0x07, struct hiddev_report_info)
#define HIDIOCSREPORT      _IOW('H', 0x08, struct hiddev_report_info)
#define HIDIOCGREPORTINFO   _IOWR('H', 0x09, struct hiddev_report_info)
#define HIDIOCGFIELDINFO   _IOWR('H', 0x0A, struct hiddev_field_info)
#define HIDIOCGUSAGE      _IOWR('H', 0x0B, struct hiddev_usage_ref)
#define HIDIOCSUSAGE      _IOW('H', 0x0C, struct hiddev_usage_ref)
#define HIDIOCGUCODE      _IOWR('H', 0x0D, struct hiddev_usage_ref)
#define HIDIOCGFLAG      _IOR('H', 0x0E, int)
#define HIDIOCSFLAG      _IOW('H', 0x0F, int)
#define HIDIOCGCOLLECTIONINDEX   _IOW('H', 0x10, struct hiddev_usage_ref)
#define HIDIOCGCOLLECTIONINFO   _IOWR('H', 0x11, struct hiddev_collection_info)
#define HIDIOCGPHYS(len)   _IOC(_IOC_READ, 'H', 0x12, len)

/* For writing/reading to multiple/consecutive usages */
#define HIDIOCGUSAGES      _IOWR('H', 0x13, struct hiddev_usage_ref_multi)
#define HIDIOCSUSAGES      _IOW('H', 0x14, struct hiddev_usage_ref_multi)

/*
* Flags to be used in HIDIOCSFLAG
*/
#define HIDDEV_FLAG_UREF   0x1
#define HIDDEV_FLAG_REPORT   0x2
#define HIDDEV_FLAGS      0x3

/* To traverse the input report descriptor info for a HID device, perform the
* following:
*
* rinfo.report_type = HID_REPORT_TYPE_INPUT;
* rinfo.report_id = HID_REPORT_ID_FIRST;
* ret = ioctl(fd, HIDIOCGREPORTINFO, &rinfo);
*
* while (ret >= 0) {
*    for (i = 0; i < rinfo.num_fields; i++) {
*       finfo.report_type = rinfo.report_type;
*       finfo.report_id = rinfo.report_id;
*       finfo.field_index = i;
*       ioctl(fd, HIDIOCGFIELDINFO, &finfo);
*       for (j = 0; j < finfo.maxusage; j++) {
*          uref.report_type = rinfo.report_type;
*          uref.report_id = rinfo.report_id;
*          uref.field_index = i;
*          uref.usage_index = j;
*          ioctl(fd, HIDIOCGUCODE, &uref);
*          ioctl(fd, HIDIOCGUSAGE, &uref);
*       }
*    }
*    rinfo.report_id |= HID_REPORT_ID_NEXT;
*    ret = ioctl(fd, HIDIOCGREPORTINFO, &rinfo);
* }
*/


#endif


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-06-25 11:14 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
1. hiddev.h failas paprastai bus by default included ubuntu sistemoje ir galima rasyt #include <hiddev.h> . Taciau, Ubuntu 9.04 versijoje esantis man nenorejo kompiliuotis, tai cia pateikta kopija esancio Ubuntu 10.04.

2. Kompiliavimas daromas su stai tokia komanda: gcc ups.c -o ups -lusb

3. Programai reikalingi root priviliges, tam kad galetu prieiti prie HIDDEV yrenginio. Paleisti su komandas sudo ./ups.

4. Yra uzkomentuoti main'e du metodai. Pirmasis suranda kurioje jungtyje yra pajungtas UPSas, o antrojo dar neparasiau, nes nesuradau kaip nustatyti kur uzmountintas hiddev esantis uz tos jungties. Tai siuo metu reikia values.c yrasyti hiddev yrenginio path paciam.

5. Tam kad tai paleisti per PHP, reikia Apache suteikti root priviliges paleisti siam falui. Tai daroma su sudo nano /etc/sudoers ir failo gale yrasom sia eilute: www-data ALL=(ALL) NOPASSWD: /var/www/programs/ups

6. Paruosiam stai toky ups.php :
Kodas:
<?php
  echo "Bandomoji UPS programa";
  exec('/usr/bin/sudo /var/www/programs/ups', $out, $val);
  echo "<br>Output:</br>";
  foreach($out as $temp)
    echo "<pre>" . $temp . "</pre>";
?>


7. Gautas rezultatas:
Kodas:
Load:               19.0%
Max Power:          210 W
Power Usage:        39.90 W
Battery Left:       100.0%
Run Time To Empty:  47 minutes 7 seconds
Voltage AC:         230.0 V
Voltage Battery:    23.0 V
Frequency:          50.00 Hz
Tempereture:        23 C
Battery Capicity:   100.0%
Charging:           FALSE
Discharging:        FALSE
AC Present:         TRUE
Communication Good: TRUE
Need New Battery:   FALSE
OverLoad:           FALSE
Battery Present:    TRUE
Battery Level Good: TRUE
ShutDown Requested: FALSE
Shutting Down:      FALSE


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-06-26 15:49 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
Pasizaidimui:

Kilo tokia durna ideja kad noretusi paspausti ant .torrent failo ir jis automatiskai butu ykeltas y siuntimu sarasa serve.

Realizacija:

Sukuriame faila AutoAdd.bat (as jy laikau prie Program Files):
Kodas:
@echo off
echo got var: %1
move "%1" "\\SERVAS\hdd\Downloads\0_AutoAdd"

Pasileidziame FireFox, paspaudziame ant .torrent ir parenkame open with su tuo musu .bat failu ir pazymim "always use this program".

Stebim kaip .torrent faila yra automatiskai permetamas y serva ant jo paspaudus :)

Dabar lieka y deluge yrasyti Auto Add plugina, nes defaultinis option "add torrents from folder" pasirode daznai nesuveikiantis.
Pluginas randasi cia: http://dev.deluge-torrent.org/wiki/Plugins/AutoAdd .

Paspaudziam ant .torrent open ir jis automatiskai atsiranda WEBUI !!! Magija =]


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-07-04 17:40 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
Pasismaginimui #2: Network boot server.

Nepykit jei tutorial nebus visiskai nuoseklus, nes paciam teko nemazai paklaidziot, kol pasileido normaliai.

Susirasom siuos package: atftpd ir nfs-kernel-server.

Pirma susitvarkom su TFTP service:

Sukuriam stai toky faila: /etc/xinetd.d/tftp
Kodas:
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /var/lib/tftpboot
disable = no
}


Parestartuojam xinetd ir susirasius atftp programa galim paziuret ar kiti kompai prisconnectina prie TFTP. Taip pat enablinam 69 porta. server_args nusirodo kuris folderis bus pasharintas per tftp. Ten mes desim PXE loadinimo stuff.

Tada paredaguojam /etc/dhcp3/dgcpd.conf stai tokiu budu (darasyti sias eilutes):
Kodas:
...
   next-server 192.168.0.1;
   filename "pxelinux.0";
...
   allow booting;
   allow bootp;
...


Tada mums reikia tik susirasti kas loadintusi per tinkla. O tai yra cia: http://cdimage.ubuntu.com/netboot/ . As naudojau 9.04 x86, bet ta dalis kurios man reikia veikia ir su 10.04 x64 ir t.t.
Is ten parsisiunciam netboot.tar.gz ir visa jo turiny pasidedam y /var/lib/tftpboot.

Dabar jamam kokay tais kompa kuris moka daryti network boot ir jy kuriam. Grozimes kaip ismeta Ubuntu Logo :clap:

O dabar pasistenkim dar truputy ir is viso sito padarykim Ubuntu Live CD Network Boot Loader. Tam mums reikes jusu megstamiausio Ubutnu Live CD .ISO. Jo turiny isekstraktiname y pvz: /var/lib/tftpboot/9.04_x86/ .

Tada einam konfiguruoti NFS service. Pasiredaguojam /etc/default/nfs-kernel-server (as keiciau tik RPCMOUNTDOPTS, tam kad naudotu fiksuota porta.)
Kodas:
RPCNFSDCOUNT=8
RPCNFSDPRIORITY=0
RPCMOUNTDOPTS="-p 2050"
NEED_SVCGSSD=
RPCSVCGSSDOPTS=


Ir pasharinam per NFS koky tais folderi: /etc/exports
Kodas:
/var/lib/tftpboot/ 192.168.0.0/24(sync,no_root_squash,no_subtree_check,ro)

Allowinam siuos portus: 111, 2049, 2050. (reiks pabandyt ar 111 vis dar reikalingas).
Tada galim pabandymui uzmountint NFS share y savo kompa:
Kodas:
sudo mount 192.168.0.1:/var/lib/tftpboot /home/rkr/serv


Jei viskas kol kas gerai- einam toliau. Perkeliam siuos failus y /var/lib/tftpboot is po folderiu giliai:
    pxelinux.0
    initdr.gz
    linux
    pxelinux.cfg/vesamenu.c32
Sukuriam foldery pxelinux.cfg ir jame stai toky default faila:
Kodas:
default pxelinux.cfg/vesamenu.c32
menu title Network Linux
label netboot1
        menu label ^Ubuntu 9.04_x86 LAN
        kernel 9.04_x86/casper/vmlinuz
        append initrd=9.04_x86/casper/initrd.gz boot=casper netboot=nfs nfsroot=192.168.0.1:/var/lib/tftpboot/9.04_x86 --
label netboot2
        menu label ^Ubuntu 10.04_x64 LAN
        kernel 10.04_x64/casper/vmlinuz
        append initrd=10.04_x64/casper/initrd.lz boot=casper netboot=nfs nfsroot=192.168.0.1:/var/lib/tftpboot/10.04_x64 --
label hd
        menu label ^Boot from HDD
        localboot 0x80

Dabar prisijungus prie netboot servo pamatysime visiskai kitoky (defaultini) PXE Boot langa. jame bus 3 options. Krauti 9.04, 10.40 (ykelti lygiai tokiu paciu budu) ir krauti is HDD.

Pasirenkame megstama versija ir grozimes kaip ja uzkrauna. Jei viskas lieka kabeti ant terminalo- ziureti portus ir ar visi failai vietose.

Wuola!!! :cool:

Veliau bandysiu y NFS share sukelt pilnus suinstaliuotus Ubuntu ir paleist namie kazka panasaus y terminal server. Tik kad naudos kliento resursus ir visas OS nebus read-only :)


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-07-11 18:44 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
Dabar labai trumpai: mano Network Boot Ubuntu pasileido ir veikia beveik gerai. Kita savaitgali sudesiu logus :)


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-07-18 09:08 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
O stai ir instrukcija kaip paleist pilnus Ubuntu per tinkla.

Pirmiausia reikia paciu suinstaliuotu Ubuntu. Stai ir Step1:

Jie turi buti tokioje formoje, kad juos isjungtus butu galima perkopojuoti y kita kompa. Geriausias variantas, ka sugebejau sugalvot- susirasyt juos y 4GB flasha. Taigi imam koky tais flasha ir Ubuntu Install CD ir kompa kurio harda butu galima atjungti per BIOSa. Hardo atjungimas rekomenduojamas, nes Boot Loader jie nores rasyt y "active boot HDD". O tai gali neblogai pagadinti reikalus.

Toliau mums reiks patobulinti tuos linuxus, kad jie butu Network Bootable.

Step2 (kernel edit):

Uzsikrauname musu naujus nuostabius linuxus is USB flash ir einam y sy faila: /etc/initramfs-tools/initramfs.conf . Jame pakeiciam stai sia eilute:

Kodas:
BOOT=nfs


Tai reiskia, kad sekanti karta updateinant linuxus, kernelio InitRD bus sugeneruotas tam kad krautusi is NFS Share.

O dabar pasidarom atsargine kopija Initrd* failo is /boot direktorijos ir leidziam sia komanda:

Kodas:
mkinitramfs -o /home/<USERNAME>/initrd.img-<versija>-generic (jei jy pasidedam kitur)

mkinitramfs (jei overwritinam)


Jeigu overwritinam, tai is USB flasho ju daugiau nebeuzkrausim. Jei ne- tai ykopijavus reiks replaceint ta sugeneruota su esanciu /boot .

Step3 (share):

Pasharinam nauja foldery /etc/exports :

Kodas:
/var/lib/tftpboot 192.168.0.0/24(async. no_subtree_check,ro)
/media/storage/NFS 192.168.0.0/24(async, no_subtree_check, no_root_squash,rw)


Pakeistas pries tai buves share.

Parestartuojam su komanda:

Kodas:
/etc/init.d/nfs-kernel-server restart


Step3 (Copy/Paste):

Skamba paprasciausiai, bet man ilgiausiai uztruko padaryti teisingai.

Galima bandyti is USB flasho kopijuoti tiesiai y serva.
Arba is kompo su tokia pacia Ubutnu versija kopijuoti per NFS Share.

As kopijavau per NFS share, nes tiesiai kopinant senesni Ubuntu sumaiso Userius ir niekas neveikia. (GDM tampa kazkokiu WEB* ir t.t.)

Mountinam musu NFS share:

Kodas:
sudo mount 192.168.0.1:/media/storage/NFS /home/rkr/serv


Ir kopijuojam su stai tokia komanda:

Kodas:
sudo cp -ax /media/c3d43404-3070-4847-b4ad-681c242d4cbf/dev home/rkr/serv/10.04_x64/.


Kur ilgas kodas yra mano flasho ID ir gale yra tik vienas folderis parinktas, nes kopijavau po viena ir tikrinau. Sitaip perkelti visus folderius.

Greitas patikrinimas, kad gal veiks:

    /tmp visi turi read-write teises
    /root tik root turi access
    /home/<tavo vardas> owneris esi tu
    /var/lib/gdm owneris yra GDM

Jei taip tai valio!

Step4 (toliau modinam):

Kadangi kraunant per NFS nelabai jis kraus is vietinio hardo, tai reikia pakeist mount pointus /etc/fstab :

Kodas:
proc            /proc           proc    defaults        0       0
/dev/nfs       /               nfs    defaults          1       1
none            /tmp            tmpfs   defaults        0       0
none            /var/run        tmpfs   defaults        0       0
none            /var/lock       tmpfs   defaults        0       0
none            /var/tmp        tmpfs   defaults        0       0


Ir jam nelabai seksis sukonfiguruot tinklo plokstes, nes ji jau bus paleista /etc/network/interfaces :

Kodas:
#iface eth0 inet dhcp
iface eth0 inet manual


Step5 (PXE Boot menu):

Cia yra vienas likes bugas kurio kol kas neradau kaip issprest normaliai. Esme, kad veiktu reikia surasyti statinius IP. Bet esme, kad viska darom cia pxelinux.cfg (kuris yra TFTP share):

Kodas:
label netboot4
        menu label ^Ubuntu 10.04_x64 HDD Rolando
        kernel 10.04_hdd/vmlinuz
        append root=/dev/nfs initrd=10.04_hdd/initrd.img nfsroot=192.168.0.1:/media/storage/NFS/10.04_x64 ip=192.168.0.103:192.168.0.1:192.168.0.1:255.255.255.0:::none rw --


Kur vietoj visu tu galima bus parasyt ip=dhcp, kai isspresiu sita buga.

Step6 (links):

As sukuriau symbolic links y /vmlinz ir /initrd failus kuriuos automatiskai updateina po kernel perrasymo. Cia aisku gaunas symblic link to a symblic link. Bet tai veikia ir tai veikia gerai. Galima ir pvz y tftp share sukelt paty kerneli ir initrd, bet labai jau cia nelankstu.

Step7 (moment of glory):

O dabar paleidziam koky tais kompa ir kraunam musu Linuxus, nes jie jau turi pasileist.

Step8 (toliau modinam):

Dabar neleidziam update-manager, nes jis labai graziai uzlus su erroru kad nesugebejo grub update padaryt (logiska). Tai mes per synaptic istrinam grub. ir pakeiciam stai sy faila /etc/kernel-image.conf :

Kodas:
#postinst_hook = update-grub
#postrm_hook   = update-grub


Tam kad jis ir nesistengtu naudoti grub. Dabar paleidziam system updates ir viskas turi prasisukt ir sugeneruot nauja initrd su tinkamais parametrais ir padaryti naujus simlinks ir niekas nesprogti. Parestartuojam ir viskas veikia (jei esi optimistas).

Galima paleist sudo apt-get autoremove tam kad istrinti grub likucius ir senus kernelius.

Kai surasiu kaip issprest ip=dhcp problema- parasysiu.

Esme kad ten ismeta errora, kad "/init: .: line 1: can't open /tmp/net-eth0.conf".

[Edit:]

Tai vienas is mano spejimu pasiteisino: pxelinx.0 nuo 9.04 versijos yra nevykes. Paemiau jy nuo 10.04 ir viskas pasileido. Galima rasyt ip=dhcp


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
 Pranešimo tema: Re: Project Linux Server
StandartinėParašytas: 2010-07-28 20:09 
Atsijungęs
Vartotojo avataras

Užsiregistravo: 2004-12-28 17:05
Pranešimai: 954
Miestas: Raudondvaris-Vilnius
Sekanti ideja:

Pasirasyti RSS readeri kuris imtu streama is LM.net ir jei ten esantis title atitinka kury nors pattern- parsiusti susieta .torrent ir jy ydeti y siuntimo sarasa.

Idejimo ir baigimo siusti atvejais issiunciama zinute vidiniams kompams per basic messenger.

Progress:

1. Parasytas basic cmd-line based messengeris ant C kuris kompiliuojasi Linux/Win 32/64bit
2. Ant pytono parasytas client kuris pafechina rss feada
3. Ant pytono parasytas show fancy message in Notify OSD (Ubuntu 10.04/9.10)
4. Iseksportintas cookie (kad prisilogint auto) ir suformuota wget komanda kuri paima .torrent jei zinomas jo ID.

Kaip visa tai susijungs y viena net neysivaizduoju, bet bus matyt :dremel:


Į viršų
 Aprašymas Siųsti asmeninę žinutę  
 
Rodyti paskutinius pranešimus:  Rūšiuoti pagal  
Naujos temos kūrimas Atsakyti į temą  [ 16 pranešimai(ų) ]  Eiti į 1, 2  Kitas

Visos datos yra UTC + 2 valandos


Dabar prisijungę

Vartotojai naršantys šį forumą: Registruotų vartotojų nėra ir 1 svečias


Jūs negalite kurti naujų temų šiame forume
Jūs negalite atsakinėti į temas šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite trinti savo pranešimų šiame forume
Jūs negalite prikabinti failų šiame forume

Pereiti į:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Template made by DEVPPL - Vertė Vilius Šumskas © 2003, 2005, 2007