music request 2
Фильтрация по тегам не достаточна точна.
Фильтрация по тегам не достаточна точна.
Работает rtorrent, пишет на диск, не делает fsync, смотрел strace. Диск смонтирован с параметром commit=480 (хотя ман говорит что для reiserfs нет такого). Включен laptop_mode,
init_laptop() {
echo 5 > /proc/sys/vm/laptop_mode
echo 48000 > /proc/sys/vm/dirty_expire_centisecs
echo 48000 > /proc/sys/vm/dirty_writeback_centisecs
echo 20 > /proc/sys/vm/dirty_ratio
echo 1 > /proc/sys/vm/dirty_background_ratio
blockdev --setfra 16384 /dev/sda
}
Результат, каждые 4-5 секунд дергается диск. Как это можно подебажить? чтобы понять причину.
Скорость прибывания данных ~200Кб/сек, не так быстро чтобы записывать каждые 5 секунд. Память 2G, почти вся свободна.
Как реализовать для примера атомарный инкремент имея только инструкции чтения сложения и записи? Кажется есть какой-то метод, как-то вот так, точно не помню, найти не могу (не знаю как называется),
#define MAX_THREAD (2)
#define RET_OK (0)
#define RET_FAIL (-1)
struct atvar {
int val;
int tab[MAX_THREAD];
};
int at_init(struct atvar *v)
{
int i;
v->val = 0;
for (i = 0; i < MAX_THREAD; ++i)
v->tab[i] = 0;
}
int at_inc(struct atvar *v, int tid)
{
int i, rval;
for (i = 0; i < MAX_THREAD; ++i) {
if (v->tab[i])
return RET_FAIL;
}
v->tab[tid] = 1;
for (i = 0; i < MAX_THREAD; ++i) {
if (i != tid && v->tab[i]) {
v->tab[tid] = 0;
return RET_FAIL;
}
}
rval = v->val;
v->val = rval + 1;
v->tab[tid] = 0;
return RET_OK;
}
И ещё возникает вопрос как анализировать правильность подобных алгоритмов.
Если поменять на 0% и сделать рестарт, то это значение остается судя по видимой яркости и току потребления, но ядро принимает его за 100% и каким-то образом продолжает регулировку в новом диапазоне.
Z 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
-----*----*----*----*----*----*----*----*----*----*----*
0% 100%
-----*
Можно сделать ещё темнее и сберечь ~0.2W. Работает одинаково хорошо через /sys/class, xbacklight, Fn+F5/F6. Но что это за багофича? И как исправить?
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
По каким словам искать?
Вот стало надобно это сконфирурить, но возникают вопросы, зачем столько
способов сделать suspend и какой и чем лучше/хуже, s2ram/standby не
интересуют, только на диск.
1. echo disk > /sys/power/state + cmdline=«resume=/dev/<yourdev>»
2. s2disk + initramfs + resume
3. tuxonice, какие-то сторонние патчи, но не понятно зачем
Попробовал первый способ, похоже там даже есть сжатие, сначала опасался,
что это будет преимуществом user space методов. Что используете и почему?
Спасибо.
Такое бывает? При условии, что использовать можно только libc и SDL. Вносить треды и их синхронизировать мне не кажется хорошей идеей.
Пытаюсь сделать бездисковую систему с busybox. Предвижу, что об этом где-то писано но я пропустил.
1. Не работает init, точнее не читает /etc/inittab
$ pwd
/home/amaora/devel/imx233/build/rootfs
$ ls -l
...
lrwxrwxrwx 1 amaora users 11 Aug 20 18:46 init -> bin/busybox
$ cat etc/inittab
# /etc/inittab
#
ttyAM0::sysinit:/etc/rc.init
ttyAM0::shutdown:/etc/rc.clean
tty1::respawn:/sbin/getty 38400 tty1
tty2::respawn:/sbin/getty 38400 tty2
ttyAM0::respawn:/sbin/getty -L ttyAM0 115200 vt100
Результат,
...
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
NET: Registered protocol family 17
Freeing init memory: 852K
can't run '/etc/init.d/rcS': No such file or directory
can't open /dev/tty3: No such file or directory
can't open /dev/tty4: No such file or directory
can't open /dev/tty2: No such file or directory
can't open /dev/tty3: No such file or directory
can't open /dev/tty4: No such file or directory
судя по исходникам это дефолтная конфигурация используемая в случае неудачного чтения конфига.
2. Добавил в cmdline ядра init=/bin/sh
...
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
NET: Registered protocol family 17
Freeing init memory: 856K
can't run '/etcmmc0: new high speed SD card at address 0002
mmcblk0: mmc0:0002 00000 954 MiB
mmcblk0: p1 p2
(none) login:
(none) login: ls
Password:
(none) login: root
Password:
(none) login: no
Password:
(none) login:
?
Похоже после перехода на openrc,
~ /etc/conf.d/net
link_ppp1=«/dev/ttyACM0»
username_ppp1=«mobile»
password_ppp1=«internet»
pppd_ppp1=(
«defaultroute»
«usepeerdns»
«noipdefault»
«ipcp-accept-local»
«ipcp-accept-remote»
noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp
)
chat_ppp1=(
'TIMEOUT' '45'
'ABORT' 'BUSY'
'ABORT' 'NO CARRIER'
'ABORT' 'ERROR'
" 'ATZ'
'OK' 'AT+CRM=i1;&C0'
'OK' 'ATDT#777'
'CONNECT' "
)
# /etc/init.d/net.ppp1 restart
* Bringing up interface ppp1
* Starting pppd in ppp1 ... [ ok ]
* Backgrounding ...
* WARNING: net.ppp1 has started, but is inactive
# cat /var/log/ppp-connect-errors
sh: -c: line 0: syntax error near unexpected token `;&'
sh: -c: line 0: `/usr/sbin/chat -e -E -v TIMEOUT 45 ABORT BUSY ABORT NO CARRIER ABORT ERROR ATZ OK AT+CRM=i1;&C0 OK ATDT#777 CONNECT'
Делал всякие ";&" и \;\&, не помогает, если эту строку убрать тоже фэйл, но в логах ничего нет.
Установлен вот такой telnet клиент.
net-misc/telnet-bsd
Как ему выключить local echo не понятно. Есть только задание символа для переключения режимов удаленной стороной насколько я понял. Какой клиент умеет выключать эхо?
После emerge world стал очень медленно и без шрифтов запускаться gvim. Раньше такое было, но как решить не помню. Уге перестановил шрифты, перегенерил локали, пробовал use флаги (nls,...), не помогает.
$ gvim
Warning: Missing charsets in String to FontSet conversion
Warning: Missing charsets in String to FontSet conversion
Да и переключение язиков в Xorg сломалось тоге, этот текст прошел через translit.ru.
Thanks.
Устройство имеет rtc, но не имеет питания для rtc. Часы каждый раз обнуляются. В логе загрузки следующее.
* Mounting proc at /proc ... [ ok ]
* Mounting sysfs at /sys ... [ ok ]
* Mounting /dev ... [ ok ]
* Starting udevd ... [ ok ]
* Populating /dev with existing devices through uevents ... [ ok ]
* Waiting for uevents to be processed ... [ ok ]
* Mounting devpts at /dev/pts ... [ ok ]
* Checking root filesystem ...Reiserfs super block in block 16 on 0x5b000 of format 3.6 with standard journal
Blocks (total/free): 3148736/2951371 by 4096 bytes
Filesystem is clean
File system check timestamp is in the future. Checking now.
Filesystem seems mounted read-only. Skipping journal replay.
File system check timestamp is in the future. Checking now.
Checking internal tree.. finished
[ ok ]
* Remounting root filesystem read/write ... [ ok ]
* Checking all filesystems ... [ ok ]
* Mounting local filesystems ... [ ok ]
* Activating (possible) swap ... [ ok ]
* Setting system clock using the hardware clock [Local Time] ...
* hwclock: settimeofday() failed, errno=22: Invalid argument.
* Failed to set clock You will need to set the clock yourself
[ !! ]
* Configuring kernel parameters ...Unknown HZ value! (83) Assume 100.
[ ok ]
* Cleaning /var/lock, /var/run ...Unknown HZ value! (82) Assume 100.
[ ok ]
* Wiping /tmp directory ... [ ok ]
* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
* has a modification time in the future!
* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
* has a modification time in the future!
* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
* has a modification time in the future!
* One of the files in /etc/{conf.d,init.d} or /etc/rc.conf
* has a modification time in the future!
...
Думаю надо сохранять время в файл, а когда будет доступна сеть использовать ntp. Вопрос в том есть ли, что нибудь готовое для этого? или мне самому переписывать /etc/init.d/clock ?
Нет возможности сделать chroot на свеже-распакованную из stage3 систему. Делаю init=/bin/sh,
Freeing init memory: 112K
sh: cannot set terminal process group (-1): Inappropriate ioctl for device
sh: no job control in this shell
sh-4.1#
sh-4.1# su
bash: no job control in this shell
(none) / #
(none) / # passwd
New password:
Retype new password:
passwd: password updated successfully
(none) / #
(none) / # whoami
root
(none) / #
(none) / # su operator
bash: no job control in this shell
bash: /root/.bashrc: Permission denied
operator@(none) / $
operator@(none) / $ whoami
operator
operator@(none) / $ su
Password:
su: Permission denied
operator@(none) / $
operator@(none) / $ exit
// reboot
This is localhost.unknown_domain (Linux armv5tejl 2.6.35.3+) 00:02:26
localhost login: root
Password:
Login incorrect
Что не так, и как надо?
$ make CONFIG_DEBUG_SECTION_MISMATCH=y zImage modules
...
WARNING: vmlinux.o(.data+0x1f858): Section mismatch in reference from the variable udc_driver to the function .init.text:fsl_udc_probe()
The variable udc_driver references
the function __init fsl_udc_probe()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
KSYM .tmp_kallsyms1.S
AS .tmp_kallsyms1.o
LD .tmp_vmlinux2
KSYM .tmp_kallsyms2.S
AS .tmp_kallsyms2.o
LD vmlinux
SYSMAP System.map
SYSMAP .tmp_System.map
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
GZIP arch/arm/boot/compressed/piggy.gzip
AS arch/arm/boot/compressed/piggy.gzip.o
CC arch/arm/boot/compressed/misc.o
CC arch/arm/boot/compressed/decompress.o
SHIPPED arch/arm/boot/compressed/lib1funcs.S
AS arch/arm/boot/compressed/lib1funcs.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
Building modules, stage 2.
MODPOST 55 modules
...
WARNING: drivers/usb/gadget/g_serial.o(.data+0x240): Section mismatch in reference from the variable gserial_driver to the function .init.text:gs_bind()
The variable gserial_driver references
the function __init gs_bind()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
ERROR: "soc_codec_dev_mxs" [sound/soc/mxs/snd-soc-mxs-evk-adc.ko] undefined!
ERROR: "mxs_codec_dai" [sound/soc/mxs/snd-soc-mxs-evk-adc.ko] undefined!
ERROR: "mxs_init_lcdif" [drivers/video/mxs/mxsfb.ko] undefined!
ERROR: "mxs_reset_block" [drivers/mmc/host/mxs-mmc.ko] undefined!
ERROR: "mxsfb_get_info" [drivers/media/video/mxs_pxp.ko] undefined!
ERROR: "mxsfb_cfg_pxp" [drivers/media/video/mxs_pxp.ko] undefined!
ERROR: "input_register_polled_device" [drivers/hwmon/mxc_mma7450.ko] undefined!
ERROR: "input_allocate_polled_device" [drivers/hwmon/mxc_mma7450.ko] undefined!
ERROR: "input_free_polled_device" [drivers/hwmon/mxc_mma7450.ko] undefined!
ERROR: "input_unregister_polled_device" [drivers/hwmon/mxc_mma7450.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2
Ядро патченое, из git freescale. Однако, подобные проблемы (undefined!) наблюдаются и при сборке linux-2.6.34-gentoo-r12.
Чем можно смотреть отличия между двумя конфигами ядра?
diff не подходит, т.к. учитывает порядок строк и комменты.
Спасибо.
Бывают такие? Тоже, что и flash drive только память не flash а ram (sd,ddrsd,...).
Если нет, то интересуют идеи как дешево сделать хотябы 1Гб.
_
1. Pseudo terminals
2. Loop device
3. FUSE
4. TUN/TAP
5. ...
Есть новая инсталляция plan9 в qemu. При старте rio, в окне qemu цветной мусор, хотя при установке rio нормально работал. Удалось нагуглить, что это может пройти если пересобрать ядро. Итак вопрос. Как получить sys шелл и при этом не пытаться стартовать rio? от пользователя none не знаю как пробраться к sys, auth/login требует какие-то пароли. Если же при старте указать sys то будет запуск rio и фэйл. Кто нибудь здесь знает.
Бэкапа нет. Не удается переключиться на другой тег в wmii, там make.conf остался открыт в gvim. :(
Есть какие нибудь идеи?
Что надо симержить для восстановления? хотя emerge тоже сломался :(
1. Распаковать /etc/ из stage
2. Узнать какие конфиги были удалены (как?)
3. Перемержить соответствующие пакеты
Все верно? но как же все таки спасти make.conf
Этот скриптик на питоне похоже не очень стабилен, и у меня не работает. Если бы работал, был бы подходящий вариант, для хранения исходников/конфигов/etc.
--> cat jbot.serv
<== #!/bin/sh
<== rm -f ~/utils/jbot.event.d/*
<== proxychains mcabber -f ~/.mcabberrc.bot
--> cat jbot.shell
<== #!/bin/sh
<== ADMIN_JID=«someone@jabber.ru»
<== while true; do
<== cat ~/utils/jbot.shell.in | while read cmd; do
<== $cmd 2>&1 | while read ln; do
<== echo «/say_to $ADMIN_JID $ln» > ~/utils/jbot.fifo
<== done
<== done
<== done
--> cat jbot.event
<== #!/bin/sh
<== ADMIN_JID=«someone@jabber.ru»
<== test «$1» == «MSG» || exit
<== test «$2» == «IN» || exit
<== test «$3» == «$ADMIN_JID» || exit
<== test «$4» || exit
<== cat $4 > ~/utils/jbot.shell.in
<== rm -f $4
Как это можно улучшить, чтобы хотя бы cd, su, ssh нормально работали? У меня идеи закончились, ясно только, что надо держать отдельный процесс шелла, но перенаправить туда строки и забрать вывод не очень то получается.
← назад | следующие → |