И если да, то как собираете: полностью из исходников, на базе существующих дистрибутивов (respin'ы), или что-то третье?
Идея: собрать мини-дистрибутив с GParted и минимумом необходимого для его работы и запускать его из initramfs/initrd.
Реализация: для сборки используется Gentoo stage3 с USE-флагами "-* minimal" и другими настройками.
Предыдущая тема: www.linux.org.ru/forum/general/7171693
Разобрался с неотложными делами и снова приступил к сборке.
По советам из предыдущей темы получились вот такие правила в Makefile:
buildroot:
cp -L /etc/resolv.conf $(STAGE3)/etc/resolv.conf
cp $(CONFIG)/make.conf $(STAGE3)/etc/make.conf
cp $(CONFIG)/package.use $(STAGE3)/etc/portage/package.use
cp -rv $(CONFIG)/savedconfig $(STAGE3)/etc/portage/
chroot $(STAGE3) env-update
chroot $(STAGE3) emerge --sync
chroot $(STAGE3) emerge -un portage
chroot $(STAGE3) eselect news read
target:
mountpoint $(STAGE3)/proc || chroot $(STAGE3) mount -t proc proc /proc
chroot $(STAGE3) emerge -un $(PACKAGES) gentoo-sources
# А сейчас будет адский костыль
chroot $(STAGE3) env ROOT=$(TARGET) USE="make-symlinks -python" emerge --with-bdeps=n -pt $(PACKAGES) | perl -ne 'if (/^\[.*(python|eselect|udev)/ and $$prev =~ /^\[[^\]]+\] +([^ ]+)/ and ($$file=$$1)=~s|([^/]+/)([a-z0-9\-]+)(-[0-9].*)|/usr/portage/$$1$$2/$$2$$3.ebuild|) {print $$file; system("sed","-ri.bak","/^[^ ]*PYTHON/s/^/#/;/^inherit/s/python//;s#[^\"(]*app-admin/eselect[^\")]*##;s#[^\"(]*sys-fs/udev[^\")]*##","$(STAGE3)".$$file); system("chroot","$(STAGE3)","ebuild","$$file","digest"); print "\n"}; $$prev=$$_'
# chroot $(STAGE3) env ROOT=$(TARGET) USE="make-symlinks -python" emerge --with-bdeps=n -ptv $(PACKAGES)
chroot $(STAGE3) env ROOT=$(TARGET) USE="make-symlinks -python" emerge --with-bdeps=n $(PACKAGES)
chroot $(STAGE3) env ROOT=$(TARGET) emerge --with-bdeps=n --depclean
mountpoint $(STAGE3)/proc && chroot $(STAGE3) umount /proc || true
# Чуть не снёс из-за опечатки кусок системы
# С chroot'ом безопаснее
chroot "$(STAGE3)" rm -vrf "$(TARGET)/usr/include" "$(TARGET)/usr/share/doc" "$(TARGET)/usr/share/locale" "$(TARGET)/var/db/pkg" "$(TARGET)/usr/share/aclocal" "$(TARGET)/usr/share/gnome" "$(TARGET)/usr/share/gtk-doc" "$(TARGET)/usr/share/man"
cp -v $(STAGE3)//usr/lib/gcc/i686-pc-linux-gnu/*/lib*.so* $(STAGE3)/$(TARGET)/lib
# cp $(CONFIG)/inittab $(STAGE3)/$(TARGET)/etc/inittab
# cp $(CONFIG)/rc.init $(STAGE3)/$(TARGET)/sbin/rc.init
Обратите внимание на костыль, который убирает зависимости от python, eselect и udev, что даёт возможность выиграть ~200M от несжатой системы. Как правильно с точки зрения Gentoo-way хранить такие препарированные ebuild'ы? В локальном оверлее?
При этом du -sh для собранной системы даёт: 109M stage3/target/. При запуске ядро распаковывает initramfs (логично, правда?), что будет означать, что при таком подходе ещё до запуска init система займёт 109M ОЗУ. Для компьютера с 128M ОЗУ это будет неприлично много.
Правильно ли я понимаю, что получив в качестве initrd файловую систему squashfs, ядро её просто читает, а не распаковывает? Это уже лучше: в сжатом squashfs+xz виде initrd занимает всего 30M.
Что ещё можно вырезать из кишок Xorg или GTK+? Список устанавливаемых пакетов прилагаю.
Понадобилось мне собрать для своих нужд маленький live-дистрибутив, причём настолько маленький, что есть смысл запихать его целиком в initramfs.
Придя к выводу, что наиболее удобным buildroot можно считать gentoo stage3, я им воспользовался:
wget -cO./download/stage3-latest.tbz $(wget -qO- "http://gentoo.bloodhost.ru/releases/x86/autobuilds/current-stage3-i686/" | sed -rn '/i686-[0-9]+.tar.bz2"/{s#.*href="([^"]+)".*#http://gentoo.bloodhost.ru/releases/x86/autobuilds/current-stage3-i686/\1#p;q}')
tar xvf ./download/stage3-latest.tbz -C ./stage3/
wget -cO./download/portage-latest.txz http://gentoo.bloodhost.ru/releases/snapshots/current/portage-latest.tar.xz
tar xvf ./download/portage-latest.txz -C ./stage3//usr
Написал такие конфиги:
# make.conf
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-O2 -march=i686 -pipe"
CXXFLAGS="${CFLAGS}"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="i686-pc-linux-gnu"
USE="-* minimal"
VIDEO_CARDS="vesa"
# package.use
sys-apps/busybox savedconfig static
sys-block/gparted dmraid fat hfs jfs mdadm ntfs reiser4 reiserfs xfs
#required by x11-libs/gtk+-2.24.5-r1, required by dev-cpp/gtkmm-2.24.2, required by sys-block/gparted-0.9.1, required by gparted (argument)
x11-libs/cairo X svg
#required by app-text/gnome-doc-utils-0.20.6, required by sys-block/gparted-0.9.1, required by gparted (argument)
dev-libs/libxml2 python
#required by x11-libs/gtk+-2.24.5-r1, required by dev-cpp/gtkmm-2.24.2, required by sys-block/gparted-0.9.1, required by gparted (argument)
x11-libs/gdk-pixbuf X
x11-base/xorg-server kdrive
#required by dev-libs/libxml2-2.7.8-r3[python], required by x11-misc/shared-mime-info-0.90, required by x11-libs/gtk+-2.24.5-r1, required by dev-cpp/gtkmm-2.24.2, required by sys-block/gparted-0.9.1, required by gparted (argument)
dev-lang/python xml
И попытался собрать систему:
chroot ./stage3 env ROOT=/target emerge busybox xorg-server gparted
А emerge сначала потребовал изменить USE-флаги (см. выше), а потом поставил аж на 363M всяких программ.
Что можно сделать, чтобы ещё уменьшить размер системы? Сменить профиль?
Tarkus / # eselect profile list
Available profile symlink targets:
[1] default/linux/x86/10.0 *
[2] default/linux/x86/10.0/selinux
[3] default/linux/x86/10.0/desktop
[4] default/linux/x86/10.0/desktop/gnome
[5] default/linux/x86/10.0/desktop/kde
[6] default/linux/x86/10.0/developer
[7] default/linux/x86/10.0/server
[8] hardened/linux/x86
[9] hardened/linux/x86/selinux
Ку!
Дано: Debian Testing,
ii udisks 1.0.4-2 storage media interface
ii udisks-glue 1.3.2-1 simple automount daemon with support for user-defined actions
Симптомы:
Когда я вставляю компакт-диск в дисковод, он нормально монтируется, с ним можно работать. Когда я нажимаю на кнопку извлечения на дисководе, диск выезжает, несмотря на то, что файловая система на нём смонтирована. Когда я монтирую тот же диск при помощи mount /media/cdrom0, дисковод блокируется нормально и не выезжает, пока я его не размонтирую.
Почему так?
Хотелось бы, чтобы система определяла, что я нажал кнопку извлечения диска, пыталась его размонтировать и в случае успешной попытки выдвигала дисковод.
Конфиг udisks-glue:
default {
automount = true
post_mount_command = "notify-send 'Device mounted' '%device_file - %mount_point'"
post_unmount_command = "notify-send 'Device unmounted' '%device_file - %mount_point'"
}
filter cdrom {
optical = true
usage = filesystem
}
match cdrom {
automount = true
post_mount_command = "notify-send 'Device mounted' '%device_file - %mount_point'"
post_unmount_command = "udisks --eject %device_file; notify-send 'Device unmounted' '%device_file - %mount_point'"
}Строчка в fstab:
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0Лог, полученный от udisks --monitor-detail:
[23:57:26][aitap@Tarkus ~]> udisks --monitor-detail
Monitoring activity from the disks daemon. Press Ctrl+C to cancel.
// я выдвигаю лоток привода, кладу на него диск и задвигаю лоток обратно
// это появляется сразу:
changed: /org/freedesktop/UDisks/devices/sr0
Showing information for /org/freedesktop/UDisks/devices/sr0
native-path: /sys/devices/pci0000:00/0000:00:1f.2/host4/target4:0:0/4:0:0:0/block/sr0
device: 11:0
device-file: /dev/sr0
presentation: /dev/sr0
by-id: /dev/disk/by-id/ata-Optiarc_DVD_RW_AD-7200S
by-path: /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0
detected at: Чтв 15 Дек 2011 17:05:20
system internal: 0
removable: 1
has media: 0
detects change: 1
detection by polling: 1
detection inhibitable: 1
detection inhibited: 0
is read only: 0
is mounted: 0
mount paths:
mounted by uid: 0
presentation hide: 0
presentation nopolicy: 0
presentation name:
presentation icon:
automount hint:
size: 0
block size: 0
job underway: no
usage:
type:
version:
uuid:
label:
drive:
vendor: Optiarc
model: Optiarc DVD RW AD-7200S
revision: 1.01
serial:
WWN:
detachable: 0
can spindown: 0
rotational media: Yes, unknown rate
write-cache: unknown
ejectable: 1
adapter: /org/freedesktop/UDisks/adapters/0000_3a00_3a1f_2e2
ports:
/org/freedesktop/UDisks/adapters/0000_3a00_3a1f_2e2/host4
similar devices:
media:
compat: optical_cd optical_cd_r optical_cd_rw optical_dvd optical_dvd_plus_r optical_dvd_plus_r_dl optical_dvd_plus_rw optical_dvd_r optical_dvd_ram optical_dvd_rw
interface: scsi
if speed: (unknown)
ATA SMART: not available
// это - через несколько секунд:
changed: /org/freedesktop/UDisks/devices/sr0
Showing information for /org/freedesktop/UDisks/devices/sr0
native-path: /sys/devices/pci0000:00/0000:00:1f.2/host4/target4:0:0/4:0:0:0/block/sr0
device: 11:0
device-file: /dev/sr0
presentation: /dev/sr0
by-id: /dev/disk/by-id/ata-Optiarc_DVD_RW_AD-7200S
by-path: /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0
detected at: Чтв 15 Дек 2011 17:05:20
system internal: 0
removable: 1
has media: 1 (detected at Чтв 15 Дек 2011 23:58:31)
detects change: 1
detection by polling: 1
detection inhibitable: 1
detection inhibited: 0
is read only: 0
is mounted: 0
mount paths:
mounted by uid: 0
presentation hide: 0
presentation nopolicy: 0
presentation name:
presentation icon:
automount hint:
size: 692715520
block size: 2048
job underway: no
usage: filesystem
type: iso9660
version:
uuid:
label: AITap Boot CD
optical disc:
blank: 0
appendable: 0
closed: 1
num tracks: 1
num audio tracks: 0
num sessions: 1
drive:
vendor: Optiarc
model: Optiarc DVD RW AD-7200S
revision: 1.01
serial:
WWN:
detachable: 0
can spindown: 0
rotational media: Yes, unknown rate
write-cache: unknown
ejectable: 1
adapter: /org/freedesktop/UDisks/adapters/0000_3a00_3a1f_2e2
ports:
/org/freedesktop/UDisks/adapters/0000_3a00_3a1f_2e2/host4
similar devices:
media: optical_cd_r
compat: optical_cd optical_cd_r optical_cd_rw optical_dvd optical_dvd_plus_r optical_dvd_plus_r_dl optical_dvd_plus_rw optical_dvd_r optical_dvd_ram optical_dvd_rw
interface: scsi
if speed: (unknown)
ATA SMART: not available
job-changed: /org/freedesktop/UDisks/devices/sr0
job underway: FilesystemMount, initiated by uid 1000
changed: /org/freedesktop/UDisks/devices/sr0
Showing information for /org/freedesktop/UDisks/devices/sr0
native-path: /sys/devices/pci0000:00/0000:00:1f.2/host4/target4:0:0/4:0:0:0/block/sr0
device: 11:0
device-file: /dev/sr0
presentation: /dev/sr0
by-id: /dev/disk/by-id/ata-Optiarc_DVD_RW_AD-7200S
by-path: /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0
detected at: Чтв 15 Дек 2011 17:05:20
system internal: 0
removable: 1
has media: 1 (detected at Чтв 15 Дек 2011 23:58:31)
detects change: 1
detection by polling: 1
detection inhibitable: 1
detection inhibited: 0
is read only: 0
is mounted: 1
mount paths: /media/cdrom0
mounted by uid: 0
presentation hide: 0
presentation nopolicy: 0
presentation name:
presentation icon:
automount hint:
size: 692715520
block size: 2048
job underway: no
usage: filesystem
type: iso9660
version:
uuid:
label: AITap Boot CD
optical disc:
blank: 0
appendable: 0
closed: 1
num tracks: 1
num audio tracks: 0
num sessions: 1
drive:
vendor: Optiarc
model: Optiarc DVD RW AD-7200S
revision: 1.01
serial:
WWN:
detachable: 0
can spindown: 0
rotational media: Yes, unknown rate
write-cache: unknown
ejectable: 1
adapter: /org/freedesktop/UDisks/adapters/0000_3a00_3a1f_2e2
ports:
/org/freedesktop/UDisks/adapters/0000_3a00_3a1f_2e2/host4
similar devices:
media: optical_cd_r
compat: optical_cd optical_cd_r optical_cd_rw optical_dvd optical_dvd_plus_r optical_dvd_plus_r_dl optical_dvd_plus_rw optical_dvd_r optical_dvd_ram optical_dvd_rw
interface: scsi
if speed: (unknown)
ATA SMART: not available
job-changed: /org/freedesktop/UDisks/devices/sr0
job underway: no
// а теперь я вынимаю диск нажатием на кнопку извлечения на дисководе
// и снова его задвигаю
// и снова вынимаю
// а теперь ввожу udisks --umount /dev/sr0
// это появляется сразу:
job-changed: /org/freedesktop/UDisks/devices/sr0
job underway: FilesystemUnmount, initiated by uid 1000
changed: /org/freedesktop/UDisks/devices/sr0
Showing information for /org/freedesktop/UDisks/devices/sr0
native-path: /sys/devices/pci0000:00/0000:00:1f.2/host4/target4:0:0/4:0:0:0/block/sr0
device: 11:0
device-file: /dev/sr0
presentation: /dev/sr0
by-id: /dev/disk/by-id/ata-Optiarc_DVD_RW_AD-7200S
by-path: /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0
detected at: Чтв 15 Дек 2011 17:05:20
system internal: 0
removable: 1
has media: 1 (detected at Чтв 15 Дек 2011 23:58:31)
detects change: 1
detection by polling: 1
detection inhibitable: 1
detection inhibited: 0
is read only: 0
is mounted: 0
mount paths:
mounted by uid: 0
presentation hide: 0
presentation nopolicy: 0
presentation name:
presentation icon:
automount hint:
size: 692715520
block size: 2048
job underway: FilesystemUnmount, initiated by uid 1000
usage: filesystem
type: iso9660
version:
uuid:
label: AITap Boot CD
optical disc:
blank: 0
appendable: 0
closed: 1
num tracks: 1
num audio tracks: 0
num sessions: 1
drive:
vendor: Optiarc
model: Optiarc DVD RW AD-7200S
revision: 1.01
serial:
WWN:
detachable: 0
can spindown: 0
rotational media: Yes, unknown rate
write-cache: unknown
ejectable: 1
adapter: /org/freedesktop/UDisks/adapters/0000_3a00_3a1f_2e2
ports:
/org/freedesktop/UDisks/adapters/0000_3a00_3a1f_2e2/host4
similar devices:
media: optical_cd_r
compat: optical_cd optical_cd_r optical_cd_rw optical_dvd optical_dvd_plus_r optical_dvd_plus_r_dl optical_dvd_plus_rw optical_dvd_r optical_dvd_ram optical_dvd_rw
interface: scsi
if speed: (unknown)
ATA SMART: not available
job-changed: /org/freedesktop/UDisks/devices/sr0
job underway: no
job-changed: /org/freedesktop/UDisks/devices/sr0
job underway: DriveEject, initiated by uid 1000
changed: /org/freedesktop/UDisks/devices/sr0
Showing information for /org/freedesktop/UDisks/devices/sr0
native-path: /sys/devices/pci0000:00/0000:00:1f.2/host4/target4:0:0/4:0:0:0/block/sr0
device: 11:0
device-file: /dev/sr0
presentation: /dev/sr0
by-id: /dev/disk/by-id/ata-Optiarc_DVD_RW_AD-7200S
by-path: /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0
detected at: Чтв 15 Дек 2011 17:05:20
system internal: 0
removable: 1
has media: 0
detects change: 1
detection by polling: 1
detection inhibitable: 1
detection inhibited: 0
is read only: 0
is mounted: 0
mount paths:
mounted by uid: 0
presentation hide: 0
presentation nopolicy: 0
presentation name:
presentation icon:
automount hint:
size: 0
block size: 0
job underway: DriveEject, initiated by uid 1000
usage:
type:
version:
uuid:
label:
drive:
vendor: Optiarc
model: Optiarc DVD RW AD-7200S
revision: 1.01
serial:
WWN:
detachable: 0
can spindown: 0
rotational media: Yes, unknown rate
write-cache: unknown
ejectable: 1
adapter: /org/freedesktop/UDisks/adapters/0000_3a00_3a1f_2e2
ports:
/org/freedesktop/UDisks/adapters/0000_3a00_3a1f_2e2/host4
similar devices:
media:
compat: optical_cd optical_cd_r optical_cd_rw optical_dvd optical_dvd_plus_r optical_dvd_plus_r_dl optical_dvd_plus_rw optical_dvd_r optical_dvd_ram optical_dvd_rw
interface: scsi
if speed: (unknown)
ATA SMART: not available
// это появляется после того, как udisks выдвинет лоток дисковода и покажет на экране никому не нужное сообщение
job-changed: /org/freedesktop/UDisks/devices/sr0
job underway: no
Пробовал комментировать строчку в fstab. Не помогло, разве что mountpoint изменялся с /media/cdrom0 на неопределённый в /media/.
Сегодня заметил в логе веб-сервера lighttpd следующие странные строки:
localhost - - [11/Sep/2011:00:18:20 +0400] "GET HTTP/1.0" 400 349 "-" "-"GET HTTP/1.0
Host: 127.0.0.1
Accept-Encoding: gzip
Connection: close
HTTP/1.0 400 Bad Request
Content-Type: text/html
Content-Length: 349
Connection: close
Date: Sat, 10 Sep 2011 19:17:50 GMT
Server: lighttpd/1.4.29
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>400 - Bad Request</title>
</head>
<body>
<h1>400 - Bad Request</h1>
</body>
</html>Пробовал:
tcp 0 0 127.0.0.1:47651 127.0.0.1:80 TIME_WAIT -Как отловить басурмана (как минимум PID)?
Умеют ли вообще iptables и libpcap отлавливать PID процесса, отправляющего пакет, или они не работают на том уровне, на котором это возможно (как тогда работает nethogs)?
#!/bin/bash
trap "xgamma -gamma 1" 0
while true
do
for n in r g b
do
eval $n=$(bc -l <<<"scale=1; 0.1 + 9.9 * $RANDOM / 32767")
done
xgamma -rgamma $r -ggamma $g -bgamma $b
sleep .1
done
now playing: Gong - Master Builder
В этот день, 18 лет назад, Ян Мёрдок опубликовал в comp.linux.os.development сообщение о создании нового дистрибутива.
Сейчас в бинарном виде этот релиз уже нигде не хранится, но его ещё можно достать из архива в виде исходных кодов.
За прошедшее время было выпущено 11 релизов, самый последний — Debian 6.0 Squeeze, а текущая ветка unstable содержит более 35000 бинарных пакетов (для архитектуры amd64), что составляет более чем 44 Гб свободного программного обеспечения!
Конечно, это было бы невозможно без помощи сообщества. Помимо более 1000 разработчиков и сопровождающих пакетов со всего света также зарегистрировано более 11000 аккаунтов системы совместной работы Alioth, и даже это число не включает в себя людей, помогающих переводами и багрепортами (и иногда патчами к ним), а также людей помогающих в IRC-каналах, на форумах и в почтовых рассылках.
Сегодня по всему миру разработчики, сопровождающие и пользователи празднуют день рождения любимого дистрибутива, устраивая виртуальные и реальные вечеринки. Пользователи также могут воспользоваться сайтом http://thank-you.debian.net/, чтобы поздравить команду разработчиков или выложить фотографии со своих праздников (на момент написания новости ссылка не работала).
Ура!
>>> Подробности
Дано: участок 6 соток. Много яблонь. Год с большим урожаем яблок.
Яблоки сыпятся, мы их собираем. С собранными яблоками нужно что-то делать.
Прямо сейчас есть 2 таза и 3 больших пакета яблок.
Что уже пробовали:
- Сок. Получается слишком много мякоти. Его лучше делать из зелёных яблок, но те предпочитают висеть, а разбираться нужно в первую очередь с упавшими.
- Пюре. Закрыли 26 банок. Немного надоело.
- Варенье. Получается пюре. См. выше.
Идеи на исходе. Что может предложить коллективный разум?
Дано:
- нетбук
- флешка с ядром и initramfs от debian-installer netboot
- Wi-Fi с WPA-PSK
- желание установить на нетбук Debian по сети
В прошлый раз пришлось пользоваться debootstrap с запущенной системы с поднятым Wi-Fi и WPA. В этот раз я решил идти до конца.
Суть проблемы: d-i на данный момент умеет только WEP.
Однако, на packages.debian.org в разделе sid обнаружился пакет wpasupplicant-udeb.
Решение:
1) Скачиваем wpasupplicant-udeb и его зависимости (libcrypto-udeb, libnl3-udeb) на флешку
2) "Настраиваем" сеть, доходим до выбора зеркал, переходим на 2-й или 3-й VT
3) mount -t vfat /dev/sda1 /mnt
4) udpkg -i /mnt/debian/*.udeb
5) nano /etc/wpa.conf # пишем конфигурацию
6) wpa_supplicant -Dwext -iwlan0 -c/etc/wpa.conf
7) Переходим обратно на 1-й VT
А дальше уже можно было ставить пакеты.
Во-первых, всех фанатов Дугласа Адамса поздравляю с Днём полотенца. Желаю им всегда помнить, где их полотенце, и никогда не паниковать.
Во-вторых, пользуясь случаем, хочу также поздравить с последним звонком всех причастных к этому празднику и пожелать им удачи в учёбе себя и/или обучении других.
Удачи обоим категориям!
Дано: Pocketbook 301+, несколько часов свободного времени, желание сделать что-нибудь эдакое.
С http://pocketbook-free.sf.net/ берётся SDK для linux (эмулятор, работающий через winelib, так и не запустился, ну и ладно), с http://www.mathomatic.org/ - исходники mathomatic, в makefile заменяется одна строчка (путь к gcc), запускается make static, а полученный файл копируется на книгу.
С того же http://pocketbook-free.sf.net/ берётся эмулятор терминала "poterm" и запускается.
Результат, правда, получается совершенно неприспособленным для нормального использования, поскольку встроенная в "терминал" (и в книгу вообще) клавиатура не имеет символов "&", "|", ">", "<", "^" и многих других.
Что интересно, на самом e-ink экране адского ШГ незаметно.
>>> Просмотр ( 800x600, 10 Kb )
Вроде такого. Или можно в жанре прог-рок.
Праздник, вроде как, должен уже идти, но что-то не весело. Хочется музыки под настроение, а нету.
Linux тут при том, что на нём не работает USB тв-тюнер, ну и ладно, телевизор и так есть, и ничего интересного на нём не идёт. Ну или при том, что при помощи ПО для него эта музыка будет прослушиваться.
С праздником! Желаю, чтобы у Вас он был повеселее, чем у меня.
UPD: Ещё кандидаты: http://rghost.ru/3827179 http://rghost.ru/3827188 http://rghost.ru/3827206 http://rghost.ru/3827215 http://rghost.ru/3827235 http://rghost.ru/3827242
Не обязательно грусть-тоска, но почему-то задевает за живое.
Все мы знаем, что программа find была придумана давным-давно, когда о таких вещах, как стиль опций GNU, никто и не задумывался. В результате современные пользователи время от времени сталкиваются с проблемой невозможности использования конструкции вида some-pipe-commands | xargs find -some condition
Вопросы:
...просто собеседник не знает русского.
Получено при помощи "примочки" к bash и следующего bashrc:
PS1="\n\[\033[34m\](\t) \[\033[1m\u/\w:\033[0m\n"
source preexec.bash.txt
function preexec() {
echo -e "\n\e[31m($(date +%X))\e[1m $(hostname):\e[0m"
}
preexec_install
На заднем плане - debian testing, openbox, conky, mpd, pidgin, deluge, sonata, iceweasel, и в кадр не попала tilda.
Обоина: 940K 0_2ca8b_8fe67145_orig.jpeg
>>> Просмотр ( 1440x900, 713 Kb )
По совету отсюда таки засел за разработку плагина, и что удивительно, написал.
Плагин при запуске читает из заданного файла список "плохих" слов (или обозначающих их регулярных выражений) и обрабатывает каждое входящее сообщение регулярным выражением
s/($str)/chr(9608)x(length $1)/egis;Где $str - плохое слово, а chr(9608) - прямоугольник.
Скришнот: 56K
Собственно, код: ~/.purple/plugins/incomingfilter.pl
На неюникодных системах, видимо, придётся призводить какие-то модификации.
Обнаружил большое количество таких, сидящих на коре деревьев.
Дано: ALSA, желание писать с микшера (например, хочу записать видео гемплея чего-либо со звуком).
Результат работы alsa-info.sh: http://www.alsa-project.org/db/?f=81b9b9b3139e370125e9a907ebedf44aa3363385
Мои действия:
Выставляю в alsamixer на вкладке Capture:
Проблема: вместо звука с микшера записывается тихий белый шум: http://rghost.ru/2642738
Но! Если я включу в alsamixer на вкладке Playback: Mic = 100, unmute, то смогу записывать таким образом с микрофона, а если ещё включу Analog Mixer, то смогу слышать всё это безобразие.
http://ompldr.org/vNWszag
Вопрос: ЧЯДНТ? Как правильно?
Дано: Debian teting (Linux Tarkus 2.6.32-5-686 #1 SMP Wed Aug 25 14:28:12 UTC 2010 i686 GNU/Linux), USB-жёсткий диск (04e8:1f02 Samsung Electronics Co., Ltd) с ФС ext3 на третьем разделе.
Проблема: время от времени программы, читающие с него, "подвисают", iowait загружает всё свободное время процессора. После этого возможно 2 варианта развития событий:
[46039.100040] usb 2-6: reset high speed USB device using ehci_hcd and address 15программы отвисают и работают дальше.
[51826.112019] usb 2-6: reset high speed USB device using ehci_hcd and address 15
[51826.232026] usb 2-6: device descriptor read/64, error -32
[51826.456017] usb 2-6: device descriptor read/64, error -32
[51826.672015] usb 2-6: reset high speed USB device using ehci_hcd and address 15
[51826.792015] usb 2-6: device descriptor read/64, error -32
[51827.016014] usb 2-6: device descriptor read/64, error -32
[51827.232019] usb 2-6: reset high speed USB device using ehci_hcd and address 15
[51827.272221] usb 2-6: device descriptor read/8, error -71
[51832.404091] usb 2-6: device descriptor read/8, error -110
[51832.619729] usb 2-6: reset high speed USB device using ehci_hcd and address 15
[51832.657999] usb 2-6: device descriptor read/8, error -71
[51837.779240] usb 2-6: device descriptor read/8, error -110
[51837.881680] usb 2-6: USB disconnect, address 15
[51837.881912] sd 11:0:0:0: Device offlined - not ready after error recovery
[51837.881933] sd 11:0:0:0: [sdc] Unhandled error code
[51837.881935] sd 11:0:0:0: [sdc] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
[51837.881939] sd 11:0:0:0: [sdc] CDB: Read(10): 28 00 16 0e 8b a0 00 00 f0 00
[51837.881946] end_request: I/O error, dev sdc, sector 370052000
[51837.881969] sd 11:0:0:0: [sdc] Unhandled error code
[51837.881971] sd 11:0:0:0: [sdc] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
[51837.881973] sd 11:0:0:0: [sdc] CDB: Read(10): 28 00 16 0e 8c 90 00 00 10 00
[51837.881980] end_request: I/O error, dev sdc, sector 370052240
[51837.884027] Aborting journal on device sdc3.
[51837.884499] EXT3-fs error (device sdc3) in ext3_reserve_inode_write: Journal has aborted
[51837.884535] EXT3-fs error (device sdc3) in ext3_dirty_inode: Journal has aborted
[51837.884565] EXT3-fs error (device sdc3): read_block_bitmap: Cannot read block bitmap - block_group = 146, block_bitmap = 4784128
[51837.884590] ext3_abort called.
[51837.884592] EXT3-fs error (device sdc3): ext3_journal_start_sb: Detected aborted journal
[51837.884595] Remounting filesystem read-only
[51837.884623] journal commit I/O error
[51837.903029] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=5373953, block=21495810
[51837.903048] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=5373953, block=21495810
[51837.903065] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=2466249, block=9863198
[51837.903078] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=2466249, block=9863198
[51837.911502] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=5736046, block=22937704
[51837.911517] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=5736046, block=22937704
[51837.911534] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=2466118, block=9863190
[51837.911547] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=2466118, block=9863190
[51837.913308] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=2450585, block=9797707
[51837.913323] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=2450585, block=9797707
[51837.913339] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=2450348, block=9797692
[51837.913352] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=2450348, block=9797692
[51837.913367] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=2451582, block=9797769
[51837.913379] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=2451582, block=9797769
[51837.914698] EXT3-fs error (device sdc3): ext3_get_inode_loc: unable to read inode block - inode=2466100, block=9863189
[51838.093205] usb 2-6: new high speed USB device using ehci_hcd and address 16
[51838.216673] usb 2-6: device descriptor read/64, error -32
[51838.444862] usb 2-6: device descriptor read/64, error -32
[51838.664015] usb 2-6: new high speed USB device using ehci_hcd and address 17
[51838.780022] usb 2-6: device descriptor read/64, error -32
[51839.004015] usb 2-6: device descriptor read/64, error -32
[51839.220024] usb 2-6: new high speed USB device using ehci_hcd and address 18
[51844.248055] usb 2-6: device descriptor read/8, error -110
[51849.376045] usb 2-6: device descriptor read/8, error -110
[51849.592017] usb 2-6: new high speed USB device using ehci_hcd and address 19
[51849.632208] usb 2-6: device descriptor read/8, error -71
[51849.764228] usb 2-6: device descriptor read/8, error -71
[51849.868021] hub 2-0:1.0: unable to enumerate USB device on port 6
[51850.136017] usb 7-2: new full speed USB device using uhci_hcd and address 10
[51850.256016] usb 7-2: device descriptor read/64, error -32
[51850.480015] usb 7-2: device descriptor read/64, error -32
[51850.696021] usb 7-2: new full speed USB device using uhci_hcd and address 11
[51850.816017] usb 7-2: device descriptor read/64, error -32
[51851.040016] usb 7-2: device descriptor read/64, error -32
[51851.256033] usb 7-2: new full speed USB device using uhci_hcd and address 12
[51851.287252] usb 7-2: device descriptor read/8, error -71
[51851.415262] usb 7-2: device descriptor read/8, error -71
[51851.628018] usb 7-2: new full speed USB device using uhci_hcd and address 13
[51851.659294] usb 7-2: device descriptor read/8, error -71
[51851.787315] usb 7-2: device descriptor read/8, error -71
[51851.888024] hub 7-0:1.0: unable to enumerate USB device on port 2
[51860.736406] ext3_abort called.
[51860.736409] EXT3-fs error (device sdc3): ext3_put_super: Couldn't clean up the journal
После этого приходится размонтировать жёсткий диск, отключать, подключать заново и снова монтировать.
В чём дело?
Дано: блокнот, ручка, возможная необходимость записать что-то такое, что никому другому читать не следует. Задача: найти оптимальный способ шифрования и последующего с минимальными задержками чтения "на лету" этих записей, помещая их в блокнот рукописным способом.
Это возможно? Если да, то как?
| ← предыдущие |