Tag Archives: command line

man (manual) levels

Sistemos administravimo komandos (dazniausiai pasiekiamos tik root)

man level Description
1 Vykdomos (eXecutable) programos ar kevalo (shell) komandos
2 Sisteminiai kreipiniai (linux branduolio teikiamos funkcijos)
3 Biblioteku kreipiniai (programu biblioteku teikiamos funkcijos)
4 Specialus failai (dazniausiai randami /dev)
5 Failu formatai ir konvencijos (susitarimai), pvz.: /etc/passwd
6 Zaidimai
7 Ivairus (iskaitant makro (macro) paketus ir konvencijos), pvz.: man(7), groff(7)
8
9 Linux branduolio rutinos [non standard]

Pora pavyzdziu naudojantis man kaomanda:


man -wa man
man -a man
man -w man
man 1 man


Tvarka, kuria ieskomi man puslapiai nustatoma globaliu kintamuoju: MANSECT. Jeigu tokio nera, ieskoma: 1:8:2:3:4:5:6:7:9:tcl:n:l:p:o.

bash trumpiniai (shortcuts, hotkeys)

Designator Description
!! Skaitoma: bang-bang, si komanda iskviecia paskutine komanda. Sauktukas daznai vadinamas bang Linux ir Unix sistemose.
!n Iskviecia n-taja komanda isistorijos. history komandos pagalba galime pamatyti siuos numerius.
!-n Kreipiames i pries n enter paspaudimu vykdyta komanda is istorijos.
!string Kvieciame paskutine komanda, kuri prasidejo string.
!?string iskvieciam paskutine komanda, kurioje buvo pamineta string.
^str1^str2 Greitas pakeitimas. Pakartojame paskutine (ar anksciausiai rasta istorijoje) komanda pakeisdami pirma str1 i str2.
C-p ir ↑ Paskutini komanda
C-n ir ↓ Sekanti komanda
C-b ir ← Atgal vienu simboliu
C-f ir → Priekin vienu simboliu
C-a ir Home I eilutes pradzia
C-e ir End I eilutes pabaiga
C-l ir clear Isvalyti ekrana
M-< I istorijos pradzia
M-> I istorijos pabaiga
C-d ir delete Istrinti (delete) simboli is desines
C-k Istrinti (delete/Kill) viska nuo kursoriaus i desine iki EOL(end Of Line – eilutes pabaigos)
C-w Istrinti (delete/kill) viska nuo kursoriaus i kaire iki eilutes pradzios
C-y Iklijuoti (paste/Yank) istrinta teksta
M-d Istrinti (delete/kill) zodi
C-rtext Atbuline text paieska
Cstext Paieska i prieki text

NTP (Network Time Protocol) ir ntpdate

Sveiki,

Dažnai susiduriate su problema, kad jūsų kompiuterio laikrodis rodo vieną laiką, namie esantys laikrodžiai rodo kitą laiką, kiek šiuo metu laiko, sužinoti, tampa ganėtinai sunku, anksčiau buvo telefono numeris, kuriuo paskambinus buvo pasakomas laikas… Jei turite interneto prieigą, tai galite užeiti į kokį puslapį… Bet ar ten rodo gerą laiką? Net jei ir puslapis yra iš Lietuvos ir Lietuvių kalba, ir skirtas Lietuvos auditoriai (lankytojams) vistiek, puslapio rodomas laikas gali sutapti su Jūsų kompiuterio rodomu laiku, nes galimi du variantai, Jūsų kompiuteris rodo tikslų laiką, arba Tiesiog puslapis nesivargina, o um parodo Jūsų kompiuteryje rodomą laiką… 🙂 Dauguma tinklapių kūrėju mano, kad Jūsų kompiuteris rodo Jums priimtiną laiką… Kaipgi dabar užtikrinti, kad Jūsų kompiuteris taip elgtųsi… Paprasta, Jei naudojame Linux:


ntpdate ntpdate.lpic.lt


Jei Windows, atidarykite komandinę eilutę, Paspaudus „Windows“ prekinį ženklą atsiradusio meniu apačioje, įvesties laukely, įraūykite cmd Jei tokio įvesties laukelio nėra, spauskite Run ir atsiradusiame lange įrašykite cmd. Dabar beliko pridėti:


w32tm /config /syncfromflags:manual /manualpeerlist:ntpdate.lpic.lt,0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org
arba
net time /setsntp:"ntpdate.lpic.lt 0.pool.ntp.org 1.pool.ntp.org" Kažkaip taip… 🙂

cyberciti.biz OpenSSH Root user account restriction – revisited – Lietuviškai

Original

– čia pateikiamas tik vertimas!

Jei norite leisti prisijungti root naudotojui per SSH tik iš vieno IP, o kitiems naudotojams iš betkur kitur. Tokį sprendimą galime realizuoti per PAM autentifikacijos modulius. Naudosime pam_access PAM modulį, kuris naudojamas prieigos valdymui. Šis suteikia galimybę kontroliuoti prisijungimus atsižvelgiant į:

  • Naudotojo prisijungimo vardą (Login names)
  • Kompą ar domeną (Host or domain names)
  • IP ar IP tinklas (Internet addresses or network IP numbers)
  • Terminal line names etc

Kam naudojam pam_access?

Prie serverio gali reikėti prisijungti iš betkurio tinkle esančio kompiuterio. taigi turime pasirūpinti gera prieigos kontrole, naudojant OpenSSH servisą.

Kaip susikonfiguruoti pam_access?

Reikės keisti šiuos failiukus:

  1. /etc/pam.d/sshd
  2. Linux PAM konfiguracinis failas.

  3. /etc/security/access.conf
  4. Taisyklių paėmimui pagal nutylėjimą yra naudojamas šis failas.

Kai kasnors jungiasi, perbėgama per 2 bylos turinį ir jei yra sutapimas įvykdoma taisyklė. Mes galime nurodyti, ar priimti tokį prisijungimą ar atmesti. sintaksė: permission : username: origins kur:
permission : Teisių laukelis “+” (prieiga suteikiama) ar “-” (prieiga atšaukiama)
username : Linux sisteminis naudotojas (username)/login‘as (root ir kiti). Galima nurodyti ir grupės vardą. Arba galima nurodyti specialų trumpinį: ALL (Jei norime, kad tai būtų skirta visiems).
origins : Čia pateikiamas sąrašas terminalo langų, kompo vardų, IP adresų, domenų, kurie prasideda . ar specialų trumpinį ALL ar LOCAL

Visų pirma, kad tolesni pakeitimai veiktų reikia įjungti pam_access palaikymą byloje /etc/pam.d/sshd:


# vi /etc/pam.d/sshd
# Papildome eilute:
account required pam_access.so


Išsaugome ir uždarome.

Tarkime norime leisti naudotojam root ir lpic prisijungti tik iš IP adreso 1.1.1.1.

Atidarome bylą: /etc/security/access.conf su root’o teisėmis:


# vi /etc/security/access.conf
# Papildome eilute:
-: ALL EXCEPT root lpic:1.1.1.1


Išsaugome bylą.

Dabar SSH leis prisijungimus naudotojų root ir lpic tik iš 1.1.1.1 IP adreso. Jei naudotojas root ir lpic bandys jungtis iš kito IP adreso, jiems parašys: ‘Connection closed by xxx.xxx.xxx.xxx’ ir error pranešimu turėtų būti papildytas Jūsų žurnaliukas (log’as):


# tailf /var/log/message
Feb 20 19:02:39 hostname pam_access[2091]: access denied for user `lpic' from `xxx.xxx.xxx.xxx'


Kur, jau kaip ir minėjau xxx.xxx.xxx.xxx1.1.1.1.
Beje, jei įrašėte savo naudotojo vardą ir išsaugojote… VISOS TAISYKLĖS taikomos IŠKART po IŠSAUGOJIMO /etc/security/access.conf bylos! Būkite atsargūs!

Daugiau pavyzdukų:

a) Kartais reiktų sukurti taisykles, kurios leistų prisijungti visiems išskyrus rootbetkur, o root tik iš localhost:


-:root:ALL EXCEPT LOCAL
# ar
-:root:ALL EXCEPT localhost


b) Deny network and local login to all users except for user root and vivek:

-:ALL EXCEPT root vivek:ALL

c) Tik iš 192.168.1.0/24 leisti prisijungti root naudotoju:


+ : root : 192.168.1.0/24


Pastebėjimas: taip galime leisti ir drausti jungtis visoms tarnyboms, kurios naudoja PAM, pvz.: ftpd, telnet ir t.t.

P.S. + : root : yyy.yyy.yyy.yyy
- : root : ALL

mdb Solaris Debuging mini HowTo

Sveiki,

norėdami įdiegti Solaris 10u9 mdb programėlę susidiekime SUNWmdb ir SUNWmdbr paketus. Visų pirma prijunkime CD.ISO, kas gali būti atlikta tik iš globalios zonos (Jei nenaudojate konteinerių, tai galėjote pabraukto teksto ir neskaityti :)):
lofiadm -a /tmp/software.iso /dev/lofi/1
mount -F hsfs -o ro /dev/lofi/1 /mnt

Pereikim į mum reikiamą aplanką
cd /mnt/Solaris_10/Product
Susimeskim visą tai:
pkgadd -d . SUNWmdb
pkgadd -d . SUNWmdbr

Toliau beliko arba prisijungti (ir sustabdyti) procesą: mdb -p ĖPID arba atidaryti core/dump failą: mdb core_dump
Na va o daba mdb komandos:

Control Commands
$< or $<< Replace input with a macro or source a macro.
$>filename or
::log filename
Log session to a file. If no filename, use default.
| Pipe. Allows simple commands to be joined.
! Shell escape. Acts as a pipe to a shell command. (Not available in kmdb.)
// Comment. Following words on the same line are ignored.
$M Show built-in macros (Kernel debugger only).
$Pstring Set prompt to string.
$Q
::quit
Quit. (From kmdb, use -u option to avoid exiting to ok> prompt.)
$W Re-open target in writable mode.
$p Change target context.
$w Control output page width.
:A Attach to a process or core file.
:R Release attachment.
:k Kill and release targets.
$v Print non-zero variables.
>
::typeset
Assign a variable.
::dcmds Print available commands.
::nm Print symbol table. (-P specifies a private symbol table. Manipulated with ::nmaddand ::nmdelete
::help dcmd Provide usage notes on a dcmd.
::typeset Manipulate variable.
::walk Walk data structure.
::walkers List available walkers.

 

 

Input & Output Commands
$< 
$<<
Replace input with a macro or source a macro.
$>filename Log session to a file. If no filename, use default.
address/format-spec
/format-spec
Read the value in a memory addressformatted as format-spec. If no address is provided, use dot.
address/W value Write the value in the four bytes starting with address. If no address is provided, usedotvw or Z may also be used instead of Wto write 1, 2 or 8 bytes, respectively.
address=format-spec
=format-spec
Format immediate value of address or dot.
? Read/write primary object file.
@format-spec Read/write physical address as format-spec.
\format-spec Read/write physical address as format-spec.

The difference between / and = is subtle. For example, to find the address holding the value of the maxphys symbol in decimal, we would run:
maxphys=D
To find the value inside the above address, we would use / like:
maxphys/D

 

 

Format Specification
Note that the ::formats dcmd prints out a full list of supported formats.
D Display in signed decimal.
i Display as a disassembled instruction.
U Display in unsigned decimal.
X Display in signed hexidecimal.
0txyz Specifies xyz as a decimal value.

 

 

System Examination
cpu$<cpus Display cpu0.
cpun$<cpu Display cpu #n.
$<msgbuf Display message buffer, including all console messages up to panic.
<sp$<stacktrace Use the stack pointer address (sp) to display a detailed stack trace.
$r
::regs
Display general registers, including program counter and stack pointer.
::callout Print callout table.
::cpuinfo -v Information about activities of CPUs, including runqueue inhabitants.
::cpuregs
::cpuregs -c cpuid
Print CPU registers. kmdb only. Can specify a cpu.
::cpustack
::cpustack -ccpuid
Print CPU stack. kmdb only. Can specify a cpu.
::dnlc Print DNLC contents.
::ipcs Print SVR4 IPC information.
::kmalog Display kernel memory log and stack traces.
::kmastat Print current kernel memory allocations
::memstat Print current memory usage.
::nm Print symbol table. (-P specifies a private symbol table. Manipulated with ::nmaddand ::nmdelete
::ps List processes with associated threads and lwps
::ptree Print process tree.

 

 

Target Examination
$? Print status and registers.
$C Show call trace and arguments, saved frame pointer and saved program counter for each stack frame.
$X$Y$x$y and::fpregs Display floating point registers.
$c Display stack backtrace.
$e Print list of global symbols.
$f Print list of source files.
$l Print representative thread’s lwp ID.
$m Print address space mappings.
$r
::regs
Display general registers, including program counter and stack pointer.
as::as2proc Convert as pointer to a proc_t pointer.
::devbindings devinfo nodes bound to device-name ormajor-num.
::devinfo Detailed devinfo of node.
::devinfo2driver Driver name for this node.
::devnames Print devnames array.
::devt Display dev_t‘s major & minor numbers.
::did2thread Kernel thread for this ID.
::dumpaddress Dump memory from address.
::findfalse Find potentially falsely shared structures.
::findleaks Search for potential kernel memory leaks.
::findlocks Find locks held by specified thread.
threadp::findstack Find kernel thread stack for associated thread.
::inode Display summary of inode_t.
::kmsqid Display message queue structure (kmsqid).
::ksemid Display a semaphore structure (ksemid).
::kshmid Display a shared memory structure (kshmid).
::pgrep pattern Find proc_t pointers matching the pattern.
0tPID::pid2proc Convert decimal PID to a proc_t pointer.
procp::ps Process information matching the associated proc_t.
::status Print summary of target status.
sobj::walk blocked Walk threads blocked on a particular synchronization object (sobj).
procp::walk thread Walk threads of associated process.
sobj::wchaninfo -v Blocked on condition variables for a particular synchronization object (sobj).
address::whatis Attempts to identify address contents.
vnode::whereopen Processes with vnode open.

 

 

Tracing, Watchpoints and Breakpoints
(Breakpoints for kernel debugger only.)
$b Show all breakpoints.
$i Print list of ignored signals.
:a Set a watchpoint.
:b Set a breakpoint.
:c or ::cont Continue target execution.
:d Delete a breakpoint.
:e Step over next instruction.
:i Step over next instruction.
:k Kill and release targets.
:p Set execute access watchpoints.
:r Run new target process.
:s Step target to next instruction.
:t Stop on delivery of specified signals.
:u Step out of current function.
:w Set write access watchpoint.
:z Delete all breakpoints.

 

 

General Debugging
$G Toggle C++ demangling.
$V Toggle disassembly mode.
$g Toggle C++ demangling.
address::dis Disassemble text starting at address.

 

 

Comparison Operators
== Logical equality.
!= Logical inequality.
& Bitwise AND.
| Bitwise OR.
^ Bitwise XOR.

Sambos serveris mano namuose HowTo Debian squeeze stable

Sveiki, kaip sekas?

Aišku jei Jumi labai paranojikas ir niekuom nepasitikit, ir suprantat, kad kiekviena programulka, su papildoma funkcija, Jūsų serveryje, suteikia įsilaužėliui po papildomą įsilaužimo įrankį tai Jūs galite susikompiliuoti SAMBA iš sources ir štai sambos HowTo. Mes taip nedarysime, juk kaip iš pavadinimo matome tai: naminis serveris, kuris NĖRA pasiekiamas iš išorės.

Taigi mums prireiks:

Taigi, parsisiunčiame SAMBA:


aptitude install samba


sutikime su viskuom, tik įdėmiai paskaitykite ką jis jums siūlo…

Taigi nusikopinkime egzistuojantį sambos configūracinį failiuką ir įmeskime šį, ara pasikeiskite Jau esamą, taip Jūs daugiau sužinorsite apie sambos teikiamus malonumus… taigi:


mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
vi /etc/samba/smb.conf


[global]
workgroup = LINUX
server string = %h server
dns proxy = no
hosts allow = 127.0.0.1 192.168.0.0/16 10.0.0.0/8 172.16.0.0/12
log file = /var/log/samba/log.%m
log level = 2
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
printing = cups
printcap name = cups
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536 SO_KEEPALIVE
deadtime = 15
vfs objects = full_audit
full_audit:prefix = %u|%I|%m|%S
full_audit:success = mkdir rename unlink rmdir pwrite
full_audit:failure = none
full_audit:facility = LOCAL7
full_audit:priority = NOTICE
[homes]
comment = Home Directories
browseable = no
read only = yes
create mask = 0700
directory mask = 0700
valid users = %S
[printers]
security = share
comment = All Printers
browseable = yes
path = /var/spool/samba
printable = yes
guest only = yes
public = yes
read only = yes
create mask = 0700
create mode = 0700
use client driver = yes
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
[DL]
path=/home/Downloads
writeable = no
valid users = USERNAME
public = no
browseable = no
available = yes


Taigi Šiame konfigūraciniame faile matome 4 pagrindines sekcijas (P.S. kas redaguojate originalų sambos failiuką… # ir ; reiškia komantarą, viskas kas už šių ženklų iki naujos eilutės, nebus traktuojama sambos serverio)

  1. [global]
  2. [homes]
  3. [printers]
  4. [print$]
  5. [DL]

Vienetuku ir dvejetuku pažymėtos sekcijos yra SAMBA išmyslas… 🙂 [global] skiltyje aprašomi bendri samba parametrai, kurie bus taikomi visai SAMBA’i ir visiems padalintiems resursams, kuriuose nepasakysime kitaip. Tuo tarpu [homes] tai yra paviešintas/padalintas/už’share’intas resursas, kurio funkcija, paviešinti naudotojo namų katalogus. T.Y. naudotojas prisijungęs, praėjęs autentifikaciją, užėjus į serverį per windows’us, pamatys savo namų katalogą SAMBA sistemoje.
SAMBA naudotojai turi egzistuoti ne tik Linux/Unix sistemoje, bet ir SAMBOS autentifikavimo sistemoje, nes SAMBA saugo slaptažodį tokiu pat formatu, kaip ir WINDOWS OS.

Taigi, sekančios sekcijos [printers] ir [print$] yra reikalingos, jei mes norime per Linux paviešinti spausdintuvą.

Taigi paskutinė opcija [DL] yra mano paviešintas resursas tinkle.


[DL]
path=/home/Downloads
writeable = no
valid users = USERNAME
public = no
browseable = no
available = yes


  • DL – tokiu pavadinimu yra pasiekiamas resursas vietiniame tinkle \\Serverio_IP\DL
  • path=/home/Downloads – čia nurodoma, kurią direktoriją norime paviešinti…
  • writeable = no – Į šį resursą, nebus galima įrašyti duomenų
  • valid users = USERNAME – ši opcija nėra būtina, bet aš nenoriu, kad į šią direktoriją patektų betkas, o tik naudotojai kurie praėjo autorizaciją
  • public = no – Resursas nėra viešai pieinamas, neautorizuoti naudotojai nealės čia patekti
  • browseable = no – Resursas nėra MATOMAS užėjus į serverį per explorer.exe į \\Server_IP jo nepamatysite, nebent pakeisite į yes
  • available = yes – resursas yra įjungtas, kai jums jo nebereikės, bet nesinorės trinti visų nustaytymų bei tingėsite komentuoti, tiesiog parašome čia no ir viskas 😉

Taigi, beliko sužinoti, kaip pridėti naudotoją prie SAMBA sistemos… Tam mums reiktų, dėl viso pikto perkrauti SAMBA serverį ir tuomet pridėti naudotoją, kuris jau yra mūsų sistemoje, o jei jo nėra jį ten sukurti:


/etc/init.d/samba restart # perkrovem SAMBA
useradd -s /bin/false -m naudotojas # Sukuriame sisteminį naudotoją tik sambai
smbpasswd -a naudotojas # pridedame jį prie SAMBA duomenų bazės.

tai tiek… nor yra dar daug ko čia papasakoti.

Software RAID masyvų valdymas Debian GNU/Linux OS pasinaudojant mdadm

Sveiki, mes jau RAID levels – RAID Lygiai – RAID0 (stripe), RAID1 (mirror), RAID5 ir RAID2, RAID3, RAID4, RAID6 temoje aptar4me kuom skiriasi RAID masyvai dabar aptarikim trumpai kaip juos galima valdyti…
Nepamirškime, kad patariama naudoti RAID masyvų skirsnius atskiruose diskuose. Taip pat Debian Lenny 5.0.6 esantis GRUB neskaito /boot esančio masyve. Taigi reikia arba „pačinti“ GRUB’ą, arba naudoti vieną /boot skirsnį ne RAID masyve.


Taigi peržiūrėti galime pasitelkus komanda:


mdadm --detail /dev/mdx


/dev/mdx – mūsų raid masyvo įrenginys. Jeigu turime tokį masyvą vieną, tuomet tai, tikriausiai, md0.
Norint gražiai pašalinti diską iš masyvo, reikia pažymėti diską neveikiančiu. ir tuomet pašalinti diską iš masyvo. Taigi tokia tvarka ir surašytos komandos (tarkime mums reikia iš RAID5 pašalinti sdc diską):


mdadm --manage --set-faulty /dev/md0 /dev/sdc1
mdadm /dev/md0 -r /dev/sdc1


Įstačius naują diską, jį reikia paruošti, t.y. suformatuoti į RAID skirsnį ir tuomet prijungti prie sistemos:


mdadm /dev/md0 -a /dev/sdc1


Žinoma norėsime stebėti kaip veikia mūsų RAID masyvas ir paleisime demoną


mdadm --monitor --mail=root@localhost --delay=1800 /dev/md0


Šis demonas kas 300minučių stebės mūsų masyvą ir jei kas praneš el. paštu. Taip pat galime dar pridėti parametrus --program ar --alert kurie nurodys kokį skriptuką kviesti įvykus klaidai.

External Link:
The Software-RAID HOWTO: Detecting, querying and testing

HP10xx Hewlett-Packard LaserJet 1020 Debian Lenny (stable) english

We will use:

heh, I have installed many packages, so i might miss some packages please fix me if so… (maybe libusb, cupsys?)
So lets add squeeze resource:


deb http://debian.mirror.vu.lt/debian squeeze main
deb-src http://debian.mirror.vu.lt/debian squeeze main


to file: /etc/apt/sources.list.d/squeeze.list
then install p910nd:


apt-get update
apt-get install p910nd


and do not forget to remove squeeze from apt list 😉 using command:


rm /etc/apt/source.list.d/squeeze.list


Next we need just install drivers to our printer and launch printing daemon…
So p910nd printing daemon conf file: /etc/default/p9910nd


# Printer number, if not 0
P910ND_NUM=""
# Additional daemon arguments, see man 8 p910nd
P910ND_OPTS="-b -f /dev/usb/lp0 0"
# my printer connects to device: /dev/usb/lp0 ;)

# Debian specific (set to 1 to enable start by default)
P910ND_START=1


So lets start it:


/etc/init.d/p910nd restart


Next, Dowload firmware: sihp1020.dl extracting it:


wget http://lpic.lt/wp-content/uploads/2010/08/sihp1020.dl.tar.bz2
bunzip2 sihp1020.dl.tar.bz2
tar -xf sihp1020.dl.tar


drop firmware into yours printer:


cat sihp1020.dl > /dev/usb/lp0


As I mentioned /dev/usb/lp0 – my printer device in linux 🙂
so, 🙂 what’s next?
As i recall that’s it… Just go to http://localhost:631 ? (I appeared to be 🙂 after one of cups or cupsys is installed)

If something do not work after reboot or replugging USB printer we should copy paste script a to /usr/sbin/hplj1020 so script a:


#!/bin/sh

if [ -f /tmp/busy-prn ]; then
exit 99
fi

touch /tmp/busy-prn

sleep 2

D=$(awk '/Manufacturer/ {print $2} ' /proc/bus/usb/devices | grep -v Linux | wc -l)

if [ $D == 1 ]; then
# No daemon running
# Start daemon if printer is attached
if [ -e /dev/usb/lp0 ]; then
/etc/init.d/p910nd start
sleep 1
cat /root/sihp1020.dl > /dev/usb/lp0
fi
else
if [ $D == 0 ]; then
# No Printer attached but daemon running
# Kill daemon
/etc/init.d/p910nd stop
fi
fi

# Kill the spare process //hid3

kill `pidof p9100d | awk '{print $2}'`

rm -f /tmp/busy-prn


now copy:


cp a /usr/sbin/hplj1020


that’s it? 😉

External link:
https://answers.launchpad.net/ubuntu/+source/hplip/+question/45032

HP10xx Hewlett-Packard LaserJet 1020 Debian Lenny (stable)

Tam naudosime:

heh, daugybe paketu prisidiegiau, tai nezinia ar kazko nepraleidau… (Galbut libusb, cupsys?)
Taigi pradzioje prisijunkim:


deb http://debian.mirror.vu.lt/debian squeeze main
deb-src http://debian.mirror.vu.lt/debian squeeze main


i byla: /etc/apt/sources.list.d/squeeze.list
tuomet susidiekime p910nd:


apt-get update
apt-get install p910nd


ir nepamirskime squeeze pasalinti is resursu: komandele:


rm /etc/apt/source.list.d/squeeze.list


Toliau mums beliko sudiegti draiveriukus musu printeriui ir paleisti spausdinimo demona…
Taigi p910nd spausdinimo demono konfiguravimas byloje: /etc/default/p9910nd


# Printer number, if not 0
P910ND_NUM=""
# Additional daemon arguments, see man 8 p910nd
P910ND_OPTS="-b -f /dev/usb/lp0 0"
# pas mane jis prisijunge prie device: /dev/usb/lp0 ;)

# Debian specific (set to 1 to enable start by default)
P910ND_START=1


Ir paleiskime si demona:


/etc/init.d/p910nd restart


Toliau parsisiuskime failiuka: sihp1020.dl ir issiarchyvuokime:


wget http://lpic.lt/wp-content/uploads/2010/08/sihp1020.dl.tar.bz2
bunzip2 sihp1020.dl.tar.bz2
tar -xf sihp1020.dl.tar


tuomet numeskim si firmware’a musu printeriui:


cat sihp1020.dl > /dev/usb/lp0


Kaip minejau /dev/usb/lp0 i cia prisilinkino mano usb printeriukas 🙂
toliau 🙂 kas?
lyg ir reiktu tiesiog uzeiti i http://localhost:631 ?

Norint, kad ikisus USB laideli dar reiktu nukopinti skripta a i /usr/sbin/hplj1020 taigi byla a:


#!/bin/sh

if [ -f /tmp/busy-prn ]; then
exit 99
fi

touch /tmp/busy-prn

sleep 2

D=$(awk '/Manufacturer/ {print $2} ' /proc/bus/usb/devices | grep -v Linux | wc -l)

if [ $D == 1 ]; then
# No daemon running
# Start daemon if printer is attached
if [ -e /dev/usb/lp0 ]; then
/etc/init.d/p910nd start
sleep 1
cat /root/sihp1020.dl > /dev/usb/lp0
fi
else
if [ $D == 0 ]; then
# No Printer attached but daemon running
# Kill daemon
/etc/init.d/p910nd stop
fi
fi

# Kill the spare process //hid3

kill `pidof p9100d | awk '{print $2}'`

rm -f /tmp/busy-prn


Ir kopijavimas:


cp a /usr/sbin/hplj1020


Lyg ir tiek ;)

External link:
https://answers.launchpad.net/ubuntu/+source/hplip/+question/45032