середу, 27 листопада 2013 р.

FreeBSD и модем Huawei e1552

Задача: отправка и получение SMS-ок из/в FreeBSD.

С этой задачей поможет справиться пакет программ SMSTools и USB-модем Huawei E1552.

Готовим модем. Есть у меня "железка"-модем и рабочая система gentoo.
Вставляю модем в USB:
# lsusb
Bus 005 Device 006: ID 12d1:1446 Huawei Technologies Co., Ltd. E1552/E1800/E173 (HSPA modem)
Bus 005 Device 002: ID 0402:7675 ALi Corp.
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Точнее:
# lsusb -vvv

Bus 005 Device 006: ID 12d1:1446 Huawei Technologies Co., Ltd. E1552/E1800/E173 (HSPA modem)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x12d1 Huawei Technologies Co., Ltd.
  idProduct          0x1446 E1552/E1800/E173 (HSPA modem)

  bcdDevice            0.00
  iManufacturer           2 HUAWEI Technology
  iProduct                1 HUAWEI Mobile
  iSerial                 0
  bNumConfigurations      1
 
Но, модем виден как набор дисков, а мне нужен модем. Воспользуюсь программой usb_modeswitch:
# usb_modeswitch -v 0x12d1 -p 0x1446 -V 0x12d1 -P 0x140c -m 0x01 -M "55534243123456780000000000000011060000000000000000000000000000"
Look for target devices ...
 No devices in target mode or class found
Look for default devices ...
   product ID matched
 Found devices in default mode (1)
Access device 010 on bus 005
Get the current device configuration ...
 OK, got current device configuration (1)
Use interface number 0
Use endpoints 0x01 (out) and 0x81 (in)
Inquire device details; driver will be detached ...
Looking for active driver ...
 OK, driver detached

SCSI inquiry data (for identification)
-------------------------
  Vendor String: HUAWEI 
   Model String: Mass Storage   
Revision String: 2.31
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI Technology
     Product: HUAWEI Mobile
  Serial No.: not provided
-------------------------
Set up interface 0
Use endpoint 0x01 for message sending ...
Trying to send message 1 to endpoint 0x01 ...
 OK, message successfully sent
Reset response endpoint 0x81
Reset message endpoint 0x01
 Could not reset endpoint (probably harmless): -99
 Device is gone, skip any further commands
-> Run lsusb to note any changes. Bye!

 # lsusb
Bus 005 Device 011: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 005 Device 002: ID 0402:7675 ALi Corp.
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
# ls /dev/ttyU*
/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2
 
Вынул+вставил модем - настройки "слетели".

Путь №2 - воспользоваться тем, что можно проинициализировать устройство на использование только модема:


 # usb_modeswitch -v 0x12d1 -p 0x1446 -V 0x12d1 -P 0x140c -m 0x01 -M "55534243123456780000000000000011060000000000000000000000000000"
# minicom /dev/ttyUSB0
minicom>AT^U2DIAG=0
minicom>Ctrl+A X
 Вынул+вставил модем -о! появился модем!
Nov 27 14:33:30 localhost kernel: [125649.573644] usb 5-2: new high-speed USB device number 29 using ehci-pci
Nov 27 14:33:30 localhost kernel: [125649.700016] usb 5-2: New USB device found, idVendor=12d1, idProduct=1001
Nov 27 14:33:30 localhost kernel: [125649.700041] usb 5-2: New USB device strings: Mfr=2, Product=1, SerialNumber=0
Nov 27 14:33:30 localhost kernel: [125649.700061] usb 5-2: Product: HUAWEI Mobile
Nov 27 14:33:30 localhost kernel: [125649.700077] usb 5-2: Manufacturer: HUAWEI Technology
Nov 27 14:33:30 localhost kernel: [125649.705429] usb-storage 5-2:1.0: USB Mass Storage device detected
Nov 27 14:33:30 localhost kernel: [125649.705884] option 5-2:1.0: GSM modem (1-port) converter detected
Nov 27 14:33:30 localhost kernel: [125649.707591] usb 5-2: GSM modem (1-port) converter now attached to ttyUSB0
Nov 27 14:33:30 localhost kernel: [125649.708364] usb-storage 5-2:1.1: USB Mass Storage device detected
Nov 27 14:33:30 localhost kernel: [125649.708960] option 5-2:1.1: GSM modem (1-port) converter detected
Nov 27 14:33:30 localhost kernel: [125649.709743] usb 5-2: GSM modem (1-port) converter now attached to ttyUSB1
Nov 27 14:33:30 localhost kernel: [125649.710083] usb-storage 5-2:1.2: USB Mass Storage device detected
Nov 27 14:33:30 localhost kernel: [125649.710298] option 5-2:1.2: GSM modem (1-port) converter detected
Nov 27 14:33:30 localhost kernel: [125649.710833] usb 5-2: GSM modem (1-port) converter now attached to ttyUSB2
Замечательно - модем есть. Переходим к FreeBSD.
Воткнул модем в сервер и:
ugen0: <HUAWEI Technology HUAWEI Mobile, class 0/0, rev 2.00/0.00, addr 2> on uhub1
Фантастика! Я таки его сделал!
Ядро GENERIC - загрузка, есть устройства /dev/ugen0.
Добавил загрузку модуля u3g. Всё :-)
#dmesg | grep ucom
ucom0: <HUAWEI Technology HUAWEI Mobile, class 0/0, rev 2.00/0.00, addr 2> on uhub1
ucom0: configured 3 serial ports (U0.%d)
#ls /dev | grep cuaU
cuaU0.0
cuaU0.0.init
cuaU0.0.lock
cuaU0.1
cuaU0.1.init
cuaU0.1.lock
cuaU0.2
cuaU0.2.init
cuaU0.2.lock

Но, как оказалось, не всё так радужно, - на "боевом" сервере модем не появляется ни в каком виде.

неділю, 17 листопада 2013 р.

FreeBSD update

portsnap fetch update
less /usr/ports/UPDATING
portmaster -L | more
Root-порты: не имеют никаких зависимостей (безопасное обновление);
Trunk-порты: не зависят от других портов, но есть порты, зависимые от них (не безопасное обновление);
Branch-порты: зависят от других портов и есть порты, зависимые от них (не безопасное обновление);
Leaf-порты: зависят от других портов, от них не зависят другие порты (безопасное обновление).

FreeBSD SRV2

# uname -a
FreeBSD SRV2 9.0-RELEASE-p5 FreeBSD 9.0-RELEASE-p5 #6: Thu Feb 14 01:25:41 EET 2013     admin@SRV2:/usr/src/sys/amd64/compile/DELL_GPS  amd64


Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 9.0-RELEASE-p5 #6: Thu Feb 14 01:25:41 EET 2013
    admin@SRV2:/usr/src/sys/amd64/compile/DELL_GPS amd64
CPU: Intel(R) Xeon(R) CPU           E5606  @ 2.13GHz (2133.45-MHz K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x206c2  Family = 6  Model = 2c  Stepping = 2
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SS
E2,SS,HTT,TM,PBE>
  Features2=0x29ee3ff<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,POPCNT,AESN
I>
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x1<LAHF>
  TSC: P-state invariant, performance statistics
real memory  = 4294967296 (4096 MB)
avail memory = 4090507264 (3901 MB)
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
FreeBSD/SMP: 2 package(s) x 4 core(s)
bce0: <Broadcom NetXtreme II BCM5716 1000Base-T (C0)>

bce1: <Broadcom NetXtreme II BCM5716 1000Base-T (C0)>
mfi0: <Dell PERC H700 Integrated>
uhci0: <Intel 82801JI (ICH10) USB controller USB-D>
ehci0: <Intel 82801JI (ICH10) USB 2.0 controller USB-B>
mfid0: <MFI Logical Disk> on mfi0
cd0: <TSSTcorp DVD+-RW TS-L633J D250> Removable CD-ROM SCSI-0 device

FreeBSD SRV1

Несколько моих серверов.

# uname -a
FreeBSD SRV1 7.4-RELEASE-p3 FreeBSD 7.4-RELEASE-p3 #0: Tue Sep 27 14:47:23 UTC 2011     root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  i386
#cat ./dmesg.boot
Copyright (c) 1992-2011 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 7.4-RELEASE-p3 #0: Tue Sep 27 14:47:23 UTC 2011
    root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Xeon(TM) MP CPU 2.50GHz (2490.28-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf25  Family = f  Model = 2  Stepping = 5
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x4400<CNXT-ID,xTPR>
  Logical CPUs per core: 2
real memory  = 4026507264 (3839 MB)
avail memory = 3937681408 (3755 MB)
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
MADT: Forcing active-low polarity and level trigger for SCI
acpi0: <COMPAQ P30> on motherboard
vgapci0: <VGA-compatible display> port 0x2400-0x24ff mem 0xf6000000-0xf6ffffff,0xf5ff0000-0xf5ff0fff at device 3.0 on pci0
atapci0: <ServerWorks CSB5 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x2000-0x200f at device 15.1 on pci0
ciss0: <Compaq Smart Array 5i> port 0x3000-0x30ff mem 0xf7ec0000-0xf7efffff,0xf7df0000-0xf7df3fff irq 30 at device 3.0 on pci1
bge0: <Compaq NC7781 Gigabit Server Adapter, ASIC rev. 0x001002> mem 0xf7ff0000-0xf7ffffff irq 31 at device 1.0 on pci2
brgphy0: <BCM5703 10/100/1000baseTX PHY> PHY 1 on miibus0
bge1: <Compaq NC7781 Gigabit Server Adapter, ASIC rev. 0x001002> mem 0xf7fe0000-0xf7feffff irq 23 at device 2.0 on pci2
miibus1: <MII bus> on bge1
brgphy1: <BCM5703 10/100/1000baseTX PHY> PHY 1 on miibus1
brgphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto, auto-flow
pcib3: <ACPI Host-PCI bridge> on acpi0
pci3: <ACPI PCI bus> on pcib3
pcib4: <ACPI Host-PCI bridge> on acpi0
pci6: <ACPI PCI bus> on pcib4
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
sio0: <Standard PC COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
fdc0: <floppy drive controller (FDE)> port 0x3f2-0x3f5 irq 6 drq 2 on acpi0
fdc0: does not respond
orm0: <ISA Option ROMs> at iomem 0xc0000-0xc7fff,0xc8000-0xcbfff,0xee000-0xeffff pnpid ORM0000 on isa0
ppc0: parallel port not found.
sc0: <System console> at flags 0x100 on isa0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
umass0: <HUAWEI Technology HUAWEI Mobile, class 0/0, rev 2.00/0.00, addr 2> on uhub0
umass1: <HUAWEI Technology HUAWEI Mobile, class 0/0, rev 2.00/0.00, addr 2> on uhub0
acd0: CDROM <CD-224E/9.9A> at ata0-master PIO4
da0: <COMPAQ RAID 1  VOLUME OK> Fixed Direct Access SCSI-0 device
da0: 69459MB (142253280 512 byte sectors: 255H 32S/T 17433C)
cd0: <HUAWEI Mass Storage 2.31> Removable CD-ROM SCSI-2 device
da1: <HUAWEI MMC Storage 2.31> Removable Direct Access SCSI-2 device
Trying to mount root from ufs:/dev/da0s1a
bge0: link state changed to UP
 

пʼятницю, 15 листопада 2013 р.

FreeBSD 7.4 установка с USB-флешки

Появился у меня сервер с FreeBSD 7.4. ОС уже старенькая, нужно обновить, но на "живой" машине" обновляться не хочется. "Недалеко" есть "свободный" сервер схожей конфигурации, - на нем и поэкспериментирую.

Искал, как запустить установку FreeBSD с USB-диска, начиная с 8-й версии, вроде, как возможно. Но у меня 7.4.

Сделал "тупо" - вытянул SystemRescueCd, сделал загрузочный диск и немножко поправил меню запуска, в начало syslinux/syslinux.cfg перед первым пунктом добавил:


MENU color tabmsg   1;31;40    #FFFFFF00 #00000000 std
MENU color help     1;31;40    #FFFFFFFF #00000000 none

label freebsd-install
  menu label FreeBSD Install
  kernel memdisk
  append initrd=/FreeBSD-7.4-RELEASE-amd64-bootonly.iso iso raw
LABEL rescuecd_std
MENU LABEL 1) SystemRescueCd: default boot options
KERNEL ifcpu64.c32
Главное, не забыть загрузить и покласть на флешку образ загрузочного диска FreeBSD.

суботу, 9 листопада 2013 р.

vps-debian-LAMP

Устанавливаю MySQL:
sh-4.2# apt-get install mysql
Reading package lists... Done
Building dependency tree      
Reading state information... Done
E: Unable to locate package mysql
Гм... Нужно найти этот сервер:
sh-4.2# apt-cache search mysql|grep server
aolserver4-nsmysql - AOLserver 4 module: module for accessing MySQL databases
courier-webadmin - Courier mail server - web-based administration frontend
drizzle-plugin-json-server - JSON HTTP (NoSQL) interface for Drizzle
freeradius-mysql - MySQL module for FreeRADIUS server
dpm-copy-server-mysql - DPM copy server with MySQL database backend
dpm-name-server-mysql - DPM nameserver server with MySQL database backend
dpm-server-mysql - Disk Pool Manager (DPM) server with MySQL database backend
dpm-srm-server-mysql - DPM SRM server with MySQL database backend
lfc-server-mysql - LCG File Catalog (LFC) server with MySQL database backend
libdbd-mysql - MySQL database server driver for libdbi
solr-common - Enterprise search server based on Lucene3 - common files
mylvmbackup - quickly creating backups of MySQL server's data files
libmysqld-pic - PIC version of MySQL embedded server development files
mysql-server - MySQL database server (metapackage depending on the latest version)
mysql-server-5.5 - MySQL database server binaries and system database setup
mysql-server-core-5.5 - MySQL database server binaries
mysql-utilities - collection of scripts for managing MySQL servers
oar-server-mysql - OAR batch scheduler MySQL server backend package
libpam-mysql - PAM module allowing authentication from a MySQL server
papercut - simple and extensible NNTP server
pennmush-mysql - text-based multi-user virtual world server with MySQL support
perdition - POP3 and IMAP4 Proxy server
pure-ftpd-mysql - Secure and efficient FTP server with MySQL user authentication
pysieved - managesieve server
tango-db - TANGO distributed control system - database server
voms-mysql-plugin - VOMS server plugin for MySQL
voms-mysql-plugin-dbg - VOMS server plugin for MySQL - Debug Symbols
wzdftpd-back-mysql - modular, small and efficient ftp server - MySQL backend
Нужно ставить mysql-server:
sh-4.2# apt-get install mysql-server                                                                     
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following extra packages will be installed:
  libdbd-mysql-perl libmysqlclient18 mysql-client-5.5 mysql-common mysql-server-5.5
Suggested packages:
  libterm-readkey-perl tinyca
The following NEW packages will be installed:
  libdbd-mysql-perl libmysqlclient18 mysql-client-5.5 mysql-common mysql-server mysql-server-5.5
0 upgraded, 6 newly installed, 0 to remove and 27 not upgraded.
Need to get 0 B/4805 kB of archives.
After this operation, 74.4 MB of additional disk space will be used.
Do you want to continue [Y/n]?
Сервер ставится не полность :( -- не стартует. Виной всему то, что VPS - виртуальный, и необходимый для InnoDB асинхронный ввод-вывод не работает в виртуальной машине. Его нужно отключить:
my.cnf:
innodb_use_native_aio=0
 Далее установка "пдхватывает" незавершённку и устанавливает сервер нормально.

Ставим апач, он тоже не сразу находится, т. к. назівается не apache, а apache2:
apt-get install apache2
Апач встал легко:

It works!

real works!
Следующий компонент perl, - ставит нет нужды, т.к. он системный... хотя, "P" - это ещё и PHP. Он нужен будет для админки БД Adminer. Ставим:
apt-get install php5 libapache2-mod-php5
Ставим админку, за одно и проверим устанку PHP.

Права нужно правильно установить - www-data:www-data.

К базе подключитьс не удаётся, - не стоят расширения php для работы с БД, - ставим:
apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
Вот теперь всё хорошо, - подключился к БД :)

vps-debian-Dancer2

Задумал установить фреймворк для перла Dancer2:
cpan install Dancer2
...
Installing /usr/local/bin/dancer2
  SUKRIA/Dancer2-0.10.tar.gz
  ./Build install  -- OK
Странно, народ в сети спрашивал, почему не ставится? :-)

середу, 6 листопада 2013 р.

Gentoo GCC error 135

Столкнулся с тем, что не могу собрать gcc у себя в системе :(
Дошёл до того, что ошибка появляется при собирании в папке /var/tmp/portage/sys-devel/gcc-4.8.1-r1/work/build/gcc:
CFLAGS="-O2 -g" make
build/genautomata /var/tmp/portage/sys-devel/gcc-4.8.1-r1/work/gcc-4.8.1/gcc/config/i386/i386.md \
  insn-conditions.md > tmp-automata.c
/bin/sh: рядок 1:  9154 Bus error               build/genautomata /var/tmp/portage/sys-devel/gcc-4.8.1-r1/work/gcc-4.8.1/gcc/config/i386/i386.md insn-conditions.md > tmp-automata.c
make: *** [s-automata] Помилка 135
Посмотрел, что представляет собой  build/genautomata -- очень много GLIBC.
Решил обновить все програмки и библиотеки с упоминанием LIBC:
emerge -uav sys-libs/libcap media-libs/libcddb dev-libs/libcdio-paranoia dev-cpp/libcmis
Посмотрю, что это даст.-- Ничего нормального :)
Пересобрал библиотеки, пе5ресобрал glibc, начал собирать gcc - имею тотже результат.
Выделил команду
build/genautomata /var/tmp/portage/sys-devel/gcc-4.8.1-r1/work/gcc-4.8.1/gcc/config/i386/i386.md insn-conditions.md > tmp-automata.c
Попробую запустить отдельной командой:
# build/genautomata /var/tmp/portage/sys-devel/gcc-4.8.1-r1/work/gcc-4.8.1/gcc/config/i386/i386.md insn-conditions.md > tmp-automata.c
Bus error
Хм, результат тотже...

суботу, 2 листопада 2013 р.

vps-debian-step2

Решил "копнуть" в сторону неопределённости установленных источников.
# cat /etc/apt/sources.list
###############################################################################
# Rackster APT-Mirror
#
deb http://apt.rackster-server.ch/debian/packages wheezy main contrib non-free
deb http://apt.rackster-server.ch/debian/security wheezy/updates main contrib non-free
###############################################################################
# Backupmirror
#
deb http://ftp.de.debian.org/debian wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free

###############################################################################
# Backports
#
deb http://ftp.debian.org/debian/ wheezy-backports main contrib non-free
Хм... Пошёл на сайт с дебианом за документацией. Документации много, очень много, найти нужную не представляется возможным :( Как всегда, гугл в помощь - "debian repository list" дал несколько ссылок, треться предоставила "Debian Sources List Generator -debgen.simplylinux.ch/".

По IP адресу VPS-а определил, что нахожусь в Германии, поэтому мой файл  /etc/apt/sources.list должен выглядеть следующим образом:
# cat /etc/apt/sources.list
deb http://ftp.de.debian.org/debian stable main contrib
deb http://ftp.debian.org/debian/ wheezy-updates main contrib
deb http://security.debian.org/ wheezy/updates main contrib
Делаю, как рекомендуется
#apt-get update
и обновление происходит без ошибок и сразу же 
#apt-get install mc
и всё, mc установлен :)

vps debian

Организовал себе VPS на Debian-е. Как не удивительно, ресурс фришный - host1free.com - спросил, через пару часов подствердили, что VPS для меня открыт.
Теперь настраиваю.
Т.к. до этого времени я использовал FreeBSD и Gentoo (Sabayon), то управление Denian-ом для в новинку.

Первым делом:
# uname -a
Linux mazapura 2.6.32-042stab078.28 #1 SMP Mon Jul 8 10:17:22 MSK 2013 x86_64 GNU/Linux
Пробую создать привычное окружение - mc:
 # apt-get install mc
Reading package lists... Done
Building dependency tree      
Reading state information... Done

The following extra packages will be installed:
  libclass-isa-perl libffi5 libglib2.0-0 libglib2.0-data libgpm2 libpcre3
  libswitch-perl libxml2 mc-data mime-support perl perl-modules sgml-base
  shared-mime-info unzip xml-core
Suggested packages:
  gpm zip bzip2 links w3m lynx arj xpdf pdf-viewer dbview odt2txt gv catdvi
  djvulibre-bin imagemagick python python-boto python-tz perl-doc
  libterm-readline-gnu-perl libterm-readline-perl-perl make
  libpod-plainer-perl sgml-base-doc debhelper
The following NEW packages will be installed:
  libclass-isa-perl libffi5 libglib2.0-0 libglib2.0-data libgpm2 libpcre3
  libswitch-perl libxml2 mc mc-data mime-support perl perl-modules sgml-base
  shared-mime-info unzip xml-core
0 upgraded, 17 newly installed, 0 to remove and 0 not upgraded.
Need to get 7881 kB/15.0 MB of archives.
After this operation, 57.7 MB of additional disk space will be used.
Err http://apt.rackster-server.ch/debian/packages/ wheezy/main perl-modules all 5.14.2-20
  Could not connect to apt.rackster-server.ch:80 (213.133.99.97). - connect (110: Connection timed out)
Отваливаемся по таймауту :(
Иду искать причину...

середу, 23 жовтня 2013 р.

Подсчёт символов в LibreOffice Writer

Макрос для подсчёта количества символов в текстовом редакторе:
REM  *****  BASIC  *****

Sub Main

' для Lemojoe:
' Имеется текст. Необходим вывод на информационной табличке статистических данных:
' количество знаков с пробелами, количество знаков без пробелов. Чтобы подсчет
' можно было произвести в любой момент работы над документом.

   Dim doc as object
   Dim controller as object
   Dim textviewcursor as object ' всякие объекты там... не важно
   Dim letters as String ' выделенная строка с текстом
   Dim gap as Integer ' число пробелов
   Dim cursign as String ' текущий значок
   dim break as Integer ' число переносов строк
   Dim i as Integer ' счетчик
   gap = 0
   break = 0

   ' получаем current document -> controller -> view cursor
   doc = ThisComponent
   controller = doc.getCurrentController()
   textviewcursor = controller.getViewCursor()


   letters = textviewcursor.getString ' забираем выделенный текст

   For i = 1 To Len(letters)

       cursign = Mid (letters, i, 1)

       If cursign = chr(32) Then ' Считаем пробелы
           gap = gap + 1 ' один да один - два

       ElseIf cursign = chr(10) Or cursign = chr(9)  Then ' Считаем переносы строк
           break = break + 1
       End If

   Next
   msgbox "Всего знаков: " & Len(letters) - break & chr(13) & "Знаков без пробелов: " & Len(letters) - gap - break

End Sub
 Спасибо, Рыбка Рио

понеділок, 21 жовтня 2013 р.

Некоторые настройки Xorg

В последнее время как-то изменился формат конфигурационных файлов Xorg. Точнее, не сам формат, а порядок расположения. Теперь части файла /etc/X11/[org.conf находятся в папке /etc/X/xorg.conf.d:

cat 10-evdev.conf
Section "InputClass"
        Identifier "evdev pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev tablet catchall"
        MatchIsTablet "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection
cat 20-keyboard.conf 
Section "InputClass"
    Identifier "evdev keyboard catchall"
    MatchIsKeyboard "on"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
   
    Option "XkbLayout" "us,ua(winkeys),ru"
    Option "XkbOptions" "grp:ctrl_shift_toggle"
EndSection

cat 10-monitor.conf
Section "Screen"
    Identifier             "Screen0"
    Device                 "Intel GMA3600"              # for AOD270
    Monitor                "Monitor0"
EndSection

Section "Monitor"
    Identifier             "Monitor0"
    DisplaySize            221 130    # In millimeters # for AOD270
EndSection

cat 10-synaptics.conf
Section "InputClass"
        Identifier "touchpad"                            # for AOD270
        MatchIsTouchpad "on"                           # for AOD270
        MatchDevicePath "/dev/input/event*"   # for AOD270
        Driver "synaptics"                                 # for AOD270
        Option "TapButton1" "1"                        # for AOD270
        Option "VertEdgeScroll" "on"                 # for AOD270
EndSection

cat 50-device.conf
Section "Device"
    Identifier             "Intel GMA3600"              # for AOD270
    Driver                 "fbdev"                           # for AOD270
EndSection

пʼятницю, 18 жовтня 2013 р.

SSH-туннель из Windows-клиента

1) Установить SSH (напр., OpenSSH)
2) Создать пару ключей:
ssh-keygen -t rsa -f <username>
3) Скопировать публичный ключ на сервер
cp <username>.pub -> linux-server
3) Создать коммандный файл tunnel.cmd:
ssh -l <username> -L 1234:srv_destination:3389 linux-server
4) Запустить туннель:
start /b tunnel.cmd
5) Запустить клиентскую программку (напр. rdesktop)

четвер, 17 жовтня 2013 р.

1С-Предприятие 8.2 на Linux (gentoo)

1) Редактируем файл /etc/layman/layman.cfg
[overlays]
overlays: http://...
+             http://iglast.kh.ua/daks.hg.xml
2) Добавляем оверлей:
layman -a daks
3) Добавляем тег "1C" в файл /etc/make.conf:
USE="... 1C"
PORTDIR_OVERLAY="/var/lib/layman/daks"
4) копируем готовый ebild в ebild с нужным номером
cp -v ./xxx-yyy-ver-build1.ebuild ./xxx-yyy-ver-build2.ebuild
ebuild xxx-yyy-ver-build2.ebuild digest
5) Скачать дистрибутивные файлы deb в DISTDIR

Установка PostgreSQL для 1C

Рецепт установки PostgreSQL для работы с сервером 1С под Linux-ом:

1) Установим mercurial:
equo install dev-vcs/mercurial
или
emerge -av dev-vcs/mercurial
2) Добавляем репозиторий, который содержит оверлей daks в файл /etc/make.conf:
 PORTDIR_OVERLAY="/var/lib/daks-overlay"
3) Удаляем возможно существующий оверлей:
install -d /var/lib/daks-overlay
4) Устанавливаем оверлей:
cd /var/lib

hg clone https://code.google.com/p/daks-overlay

Вход по SSH без пароля

Как часто бывает, есть linux-станции, на которые достаточно часто заходишь, и пароль постоянно вводить напрягает. А ведь есть способ входа БЕЗ введения пароля. Запишу рецептик здесь, что бы не вспоминать мучительно долго.

1. Генерируем пару ключей для станции с которой будем ходить на другую станцию:
sergio@local-host$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sergio/.ssh/id_rsa):[Enter key]
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Pess enter key]
Your identification has been saved in /home/sergio/.ssh/id_rsa.
Your public key has been saved in /home/sergio/.ssh/id_rsa.pub.
The key fingerprint is:
33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 sergio@local-host
2. Публичный ключ нужно снести в файл ~/.ssh/authorized_keys на станции-пациенте. Легче всего сделать воспользовавшись спец. утилитой ssh-copy-id:
sergio@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub [remote-user@]remote-host
sergio@remote-host's password:
Now try logging into the machine, with "ssh 'remote-host'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Sabayon: обновление

Есть у меня девненько установленный linux Sabayon. Ставил его где-то в 2010. Сейчас появилась необходимость обновить его.

"Нахрапом", по-простому не получается :(

1. Обновление репозитаривев.
Старый список не доступен для обновления :(
sabayon root# equo update
>>  @@ Синхронизация репозитория ...
>>   # Sabayon Linux Official Repository
>>   # Repository URL: http://svn.sabayonlinux.org/entropy/standard/sabayonlinux.org/database/x86/5
>>   # Repository local path: /var/lib/entropy/client/database/x86/sabayonlinux.org/standard/x86/5
>>   # Repository API: 2
>>     Downloading repository ...
>>     Внимание: repository does not exist online.
>>     [F]: 0.0/0.0 kB <->   0% [>         ] => 0.0b/сек. : ЕТА: 0s
Все правильно -  домен за 2 года "ищез":
nslookup svn.sabayonlinux.org
Server:        8.8.8.8
Address:    8.8.8.8#53

** server can't find svn.sabayonlinux.org: NXDOMAIN
Хорошо, что "под рукой" есть точно такая же машинка с живым Сабайоном. Меняю старые сведения о репозитории на новые. В файле  /etc/entropy/repositories.conf отключаю старй репозиторий:
# Sabayon Linux Official Repository
#repository|sabayonlinux.org|Sabayon Linux Official Repository|http://svn.sabayonlinux.org/entropy|http://svn.sabayonlinux.org/entropy#bz2
#repository|sabayonlinux.org||http://mirrors.cs.wmich.edu/sabayon/entropy|
#repository|sabayonlinux.org||http://ftp.cc.uoc.gr/mirrors/linux/SabayonLinux/entropy|
#repository|sabayonlinux.org||http://mirror.dun.nu/sabayonlinux/entropy|
#repository|sabayonlinux.org||http://mirror.holland.sabayonlinux.org/entropy|
#repository|sabayonlinux.org||http://cross-lfs.sabayonlinux.org/entropy|
#repository|sabayonlinux.org||http://ftp.surfnet.nl/pub/os/Linux/distr/sabayonlinux/entropy|
#repository|sabayonlinux.org||http://na.mirror.garr.it/mirrors/sabayonlinux/entropy|
заменяю их строками с "живого" Сабайона:
# Sabayon Linux Official Repository
repository|sabayonlinux.org|Sabayon Linux Official Repository|http://cerberus.itti.ifce.edu.br/entropy|http://pkg.sabayon.org,sabayon.org
repository|sabayonlinux.org||http://riksun.riken.go.jp/pub/pub/Linux/sabayon/entropy|
repository|sabayonlinux.org||http://ftp.sh.cvut.cz/MIRRORS/sabayon/entropy|
repository|sabayonlinux.org||http://ftp2.cz.freebsd.org/pub/sabayon/entropy|
repository|sabayonlinux.org||http://debian.mirror.dkm.cz/sabayon/entropy|
repository|sabayonlinux.org||http://mirror.us.sabayon.org/sabayon/entropy|
repository|sabayonlinux.org||http://mirror.umoss.org/sabayonlinux/entropy|
repository|sabayonlinux.org||ftp://ftp.klid.dk/sabayonlinux/entropy|
repository|sabayonlinux.org||http://ftp.fsn.hu/pub/linux/distributions/sabayon/entropy|
repository|sabayonlinux.org||ftp://ftp.fsn.hu/pub/linux/distributions/sabayon/entropy|
repository|sabayonlinux.org||http://mirrors.cs.wmich.edu/sabayon/entropy|
repository|sabayonlinux.org||http://ftp.surfnet.nl/pub/os/Linux/distr/sabayonlinux/entropy|
repository|sabayonlinux.org||ftp://ftp.nluug.nl/pub/os/Linux/distr/sabayonlinux/entropy|
repository|sabayonlinux.org||http://ftp.cc.uoc.gr/mirrors/linux/SabayonLinux/entropy|
repository|sabayonlinux.org||http://mirror.dun.nu/sabayonlinux/entropy|
repository|sabayonlinux.org||http://ftp.rnl.ist.utl.pt/pub/sabayon ftp://ftp.rnl.ist.utl.pt/pub/sabayon|
repository|sabayonlinux.org||http://mirror.internode.on.net/pub/sabayonlinux/entropy|
repository|sabayonlinux.org||http://cross-lfs.sabayonlinux.org/entropy|
repository|sabayonlinux.org||http://na.mirror.garr.it/mirrors/sabayonlinux/entropy|
Теперь должен пройти equo update. Запускаю, - поехали!!
Всего пару секунд радостного настроения и -- на тебе :(
equo update
>>  @@ Синхронізація репозиторію ...
>>   # Sabayon Linux Official Repository
>>   # Repository URL: http://pkg.sabayon.org/standard/sabayonlinux.org/database/x86/5
>>   # Repository local path: /var/lib/entropy/client/database/x86/sabayonlinux.org/standard/x86/5
>>   # Repository API: 2
>>     Downloading repository ...
>>     Завантаження контрольної суми packages.db.dumplight.bz2.md5 ...
>>     packages.db.meta: ура, є!.
>>       << розпакований мета-файл: 00-sabayon.package.keywords
>>       << розпакований мета-файл: 00-sabayon.package.mask
>>       << розпакований мета-файл: 00-sabayon.package.unmask
>>       << розпакований мета-файл: 00-sabayon.package.use
>>       << розпакований мета-файл: eapi
>>       << розпакований мета-файл: make.conf
>>       << розпакований мета-файл: make.profile
>>       << розпакований мета-файл: packages.db.critical
>>       << розпакований мета-файл: packages.db.fallback_mirrors
>>       << розпакований мета-файл: packages.db.keywords
>>       << розпакований мета-файл: packages.db.lic_whitelist
>>       << розпакований мета-файл: packages.db.mask
>>       << розпакований мета-файл: packages.db.mirrors
>>       << розпакований мета-файл: packages.db.post_update.sh
>>       << розпакований мета-файл: packages.db.post_upgrade.sh
>>       << розпакований мета-файл: packages.db.restricted
>>       << розпакований мета-файл: packages.db.revision
>>       << розпакований мета-файл: packages.db.system_mask
>>       << розпакований мета-файл: packages.db.webservices
>>       << розпакований мета-файл: parent
>>       << розпакований мета-файл: signature.asc
>>     packages.db.meta.asc: ура, є!.
>>     notice.rss: ура, є!.
>>     Перевірка репозиторію: 2814
>>     Downloaded repository status: Гаразд
>>     GPG key already installed for: sabayonlinux.org
>>     Make sure to verify the imported key and set an appropriate trust level:
>>     $ gpg --homedir '/etc/entropy/client-gpg-keys' --edit-key '6EF0055F8538092B13B449EC691428D9EE88C3A7'
>>     @@ Verified GPG signature of: packages.db.meta
>>     @@ Verified GPG signature of: packages.db.dumplight.bz2
>>     Розпакування бази даних у packages.db.dumplight ...
>>     Додається обсяг завантаженого packages.db.dumplight, зачекайте, будь-ласка ...
>>     Індексування мета-інформації репозиторію ...
>> Hi. My name is Bug Reporter. I am sorry to inform you that Equo crashed. Well, you know, shit happens.
>> Але при цьому Ви могли б дещо посприяти тому, щоб Equo став меншглючною програмою.
>> -- EVEN IF I DON'T WANT YOU TO SUBMIT THE SAME REPORT MULTIPLE TIMES --
Индексирование.... Ну, правильно, - формат баз, скорее всего, поменялся, а наш старенький equo ни сном, ни духом....

Пробую зайти с другой стороны. Так как Сабайон - бинарный дистрибутив на базе Gentoo, обновим пакеты "основного дистрибутива:
emerge --sync
>>> Starting rsync with rsync://88.198.51.10/gentoo-portage...
>>> Checking server timestamp ...
Welcome to swan.gentoo.org / rsync.gentoo.org
...
 
Ждем... Наконец-то.
По просьбам обновления делаю
emerge portage

!!! Your current profile is deprecated and not supported anymore.
!!! Use eselect profile to update your profile.
!!! Please upgrade to the following profile if possible:
        default/linux/x86/13.0/desktop
А... ну да:
ls -l /etc | grep make.profile
lrwxrwxrwx  1 root    root        54 бер 19  2010 make.profile -> ../usr/portage/profiles/default/linux/x86/10.0/desktop
lrwxrwxrwx  1 root    root        56 бер 30  2009 make.profile.entropy_old -> ../usr/portage/profiles/default-linux/x86/2007.0/desktop
Поправляю профиль:
mv /etc/make.profile /etc/make.profile.old;ln -s ../usr/portage/profiles/default/linux/x86/13.0/desktop /etc/make.profile
ls -l /etc | grep make.profile
lrwxrwxrwx  1 root    root        54 жов 17 11:07 make.profile -> ../usr/portage/profiles/default/linux/x86/13.0/desktop
lrwxrwxrwx  1 root    root        56 бер 30  2009 make.profile.entropy_old -> ../usr/portage/profiles/default-linux/x86/2007.0/desktop
lrwxrwxrwx  1 root    root        54 бер 19  2010 make.profile.old -> ../usr/portage/profiles/default/linux/x86/10.0/desktop
Повторно
time emerge portage
!!! Unable to parse profile: '/etc/make.profile'
!!! ParseError: Profile contains unsupported EAPI '5': '/usr/portage/profiles/default/linux/x86/13.0/eapi'
!!! If you have just changed your profile configuration, you should revert
!!! back to the previous configuration. Due to your current profile being
!!! invalid, allowed actions are limited to --help, --info, --sync, and
!!! --version.
Рано :( Обновим пакеты с новым профилем:
emerge --sync
!!! Unable to parse profile: '/etc/make.profile'
!!! ParseError: Profile contains unsupported EAPI '5': '/usr/portage/profiles/default/linux/x86/13.0/eapi'
>>> Starting rsync with rsync://209.177.148.226/gentoo-portage...
>>> Checking server timestamp ...
Welcome to magpie.gentoo.org / rsync.gentoo.org
emerge -uav portage
!!! Unable to parse profile: '/etc/make.profile'
!!! ParseError: Profile contains unsupported EAPI '5': '/usr/portage/profiles/default/linux/x86/13.0/eapi'
!!! If you have just changed your profile configuration, you should revert
!!! back to the previous configuration. Due to your current profile being
!!! invalid, allowed actions are limited to --help, --info, --sync, and
!!! --version.
Опять никак :( Что же делать??
Попытка №3
mv /etc/make.profile /etc/make.profile.new; mv /etc/make.profile.old /etc/make.profile
emerge -av1 portage 
emerge: there are no ebuilds to satisfy "dev-lang/python:2.7".
(dependency required by "sys-apps/portage-2.2.7" [ebuild])
(dependency required by "portage" [argument])
Требует python-2.7.
Нашел подсказку
"Это значит что Вы давно не обновляли систему и версия портежей устарела настолько, что не умеет работать с EAPI 5. Отредактируйте файл, на который он ругается, вписав 4, вместо 5. Обновите портежи emerge portage, после этого верните значение 5."
Пробую:
emerge -av1 portage
!!! Unable to parse profile: '/etc/make.profile'
!!! ParseError: Profile contains unsupported EAPI '5': '/usr/portage/profiles/default/linux/x86/13.0/eapi'
!!! If you have just changed your profile configuration, you should revert
!!! back to the previous configuration. Due to your current profile being
!!! invalid, allowed actions are limited to --help, --info, --sync, and
!!! --version.
mcedit /usr/portage/profiles/default/linux/x86/13.0/eapi
emerge -av1 portage
!!! Unable to parse profile: '/etc/make.profile'
!!! ParseError: Profile contains unsupported EAPI '4': '/usr/portage/profiles/default/linux/x86/13.0/eapi'
!!! If you have just changed your profile configuration, you should revert
!!! back to the previous configuration. Due to your current profile being
!!! invalid, allowed actions are limited to --help, --info, --sync, and
!!! --version.
mcedit /usr/portage/profiles/default/linux/x86/13.0/eapi

emerge -av1 portage
!!! Unable to parse profile: '/etc/make.profile'
!!! ParseError: Profile contains unsupported EAPI '5': '/usr/portage/profiles/eapi-5-files/eapi'
!!! If you have just changed your profile configuration, you should revert
!!! back to the previous configuration. Due to your current profile being
!!! invalid, allowed actions are limited to --help, --info, --sync, and
!!! --version.
mcedit /usr/portage/profiles/eapi-5-files/eapi

emerge -av1 portage
!!! Unable to parse profile: '/etc/make.profile'
!!! ParseError: Profile contains unsupported EAPI '4': '/usr/portage/profiles/eapi-5-files/eapi'
!!! If you have just changed your profile configuration, you should revert
!!! back to the previous configuration. Due to your current profile being
!!! invalid, allowed actions are limited to --help, --info, --sync, and
!!! --version.
mcedit /usr/portage/profiles/eapi-5-files/eapi
В результете, получилось, что нужно установить "3" вместо "5" в двух файлах.

После некоторых "экспериментов" с подстановками разных профилей пришёл к выводу, что для обновления portage крайне необходимы последние версии python:2.7 и python:3.2. Но они устанавливаются при EAPI=5. Выход следующий: "обмануть пакеты о требуемом EAPI, установить, переключиться на python:2.7, обновиться, снова установить с правильным EAPI:
mcedit /usr/portage/dev-lang/python/python-2.7.5-r3.ebuild mcedit /usr/portage/dev-lang/python/python-3.2.5-r3.ebuild
EAPI="4" меняем на EAPI="3"
cd /usr/portage/dev-lang/pythonebuild python-2.7.5-r3.ebuild digestebuild python-3.2.5-r3.ebuild digest
Далее устанавливаем:
emerge -av1 python:2.7 --nodeps
emerge -av1 python:3.2 --nodeps
Сразу же будет ошибка, что сумма не совпадает, - подмениваем суммы в Manifest.
После этих манипуляций python устанавливается. Далее
eselect python list
Available Python interpreters:
  [1]   python2.5
  [2]   python2.6 *
  [3]   python2.7
eselect python set 3
Питон установлен, теперь обновляемся, устанавливаем правильный portage и снова устанавливаем питоны:
emerge --sync
emerge -av1 python:2.7 --nodeps
emerge -av1 python:3.2 --nodeps
emerge -av1 portage
Всё, установлен нормальный portage.
Следующим шагом нужно обновить equo и entropy. Но, т.к. установленная система очень и очень старая обновить entropy с первого раза не удаётся:
emerge -av1 equo

 * IMPORTANT: 4 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] dev-python/python-exec-2.0-r1:2  PYTHON_TARGETS="(jython2_5) (jython2_7) (pypy2_0) (python2_6) (python2_7) (python3_2) (python3_3)" 79 kB
[ebuild     U  ] sys-apps/entropy-218::sabayon [0.99.50.2::sabayon] PYTHON_SINGLE_TARGET="python2_7%*" PYTHON_TARGETS="python2_7%*" 17,996 kB
[ebuild     U  ] app-admin/equo-218::sabayon [0.99.50.2::sabayon] USE="(-bash-completion%*)" PYTHON_SINGLE_TARGET="python2_7%*" PYTHON_TARGETS="python2_7%*" 0 kB

Total: 3 packages (2 upgrades, 1 new), Size of downloads: 18,075 kB

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

sys-apps/entropy:0

  (sys-apps/entropy-218::sabayon, ebuild scheduled for merge) pulled in by
    ~sys-apps/entropy-218[python_targets_python2_7(-)?,python_single_target_python2_7(+)?] required by (app-admin/equo-218::sabayon, ebuild scheduled for merge)

Для "надёжности" удалим все три программы
emerge --unmerge sys-apps/entropy  app-admin/equo app-admin/sulfur
и установим equo и entropy "с нуля":
emerge -av  sys-apps/entropy  app-admin/equo
Наконец-то имеем полноценную equo для обновления системы!

Здесь должен был быть "хэппи энд", но, после вполне успешного "equo up", последующий "equo u" оставленный на ночь преподнёс массу сюрпризов :(. Спасает только то, что удалённая машинка не выключается, но браузеры уже не запускаются, equo работать не хочет и все программки требуют разные версии glibc ((.

Python 2.7 тоже не работает, "переключился" на python:2.6. Сборка любой программки подвисает на обработке gtkconfig (не помню), затем идут ошибки и, в конце, нехватка памяти :(.

Все, удаленную машинку перезагрузили и доступ утрачен :(