LINUX.ORG.RU

Ответ на: комментарий от azure

Точно, пускай ТС часы переведет.

anonymous
()
Ответ на: комментарий от anonymous

root@valdos-desk fat-troll]# chmod 0666 /proc/uptime
[root@valdos-desk fat-troll]# echo 0.0 0.0 > /proc/uptime
bash: echo: ошибка записи: Ошибка ввода/вывода
[root@valdos-desk fat-troll]# chmod 777 /proc/uptime
[root@valdos-desk fat-troll]# echo 0.0 0.0 > /proc/uptime
bash: echo: ошибка записи: Ошибка ввода/вывода
[root@valdos-desk fat-troll]#

DoctorSinus ★★★★★
()
Ответ на: комментарий от wlan

Что засунуть?

Аптайм мне нужно сбросить, чтобы после входа ждущего режима отсчет времени заново шел, чтобы я мог просто знать насколько я увеличил уровень красноглазия сижу за компом

doctorx ★★★★
() автор топика
Ответ на: комментарий от xscrew

Насколько я понял из троллинга надо сделать «echo 0.0 0.0» > /proc/uptime , но все равно не получается

doctorx ★★★★
() автор топика
Ответ на: комментарий от doctorx

Вам предлагали сделать

echo «0.0 0.0» > /proc/uptime

Но не работает, это виртуальная хрень только для чтения. Как сбросить - хз.

staseg ★★★★★
()
KERNV=`uname -r`
kexec -l /boot/vmlinuz-$KERNV --initrd=/boot/initrd.img-$KERNV --command-line=`cat /proc/cmdline`
kexec -e
nnz ★★★★
()
Ответ на: комментарий от doctorx

> Аптайм мне нужно сбросить, чтобы после входа ждущего режима отсчет времени заново шел, чтобы я мог просто знать насколько я увеличил уровень красноглазия сижу за компом

Верх маразма. Поищи какую-н прогу будильник или напиши 2-3 строчки на Питоне.

Divius ★★
()
Ответ на: комментарий от xorik

roman@linux:~$ notify-send -t 0 'Хватит красноглазить, ёпт!'

Программа 'notify-send' на данный момент не установлена. Вы можете установить ее, напечатав:

sudo apt-get install libnotify-bin

bash: notify-send: команда не найдена

Кашмааааааар....

roman77 ★★★★★
()
Ответ на: комментарий от roman77

Ну я не знаю, чем там в вас в убунтах принято нотификации делать

xorik ★★★★★
()

Пробег скручиваешь? :)

Готов за пару бутылок хорошего пива нависать тебе системный вызов,
который будет это делать.

Учитесь, как надо на свободном софте зарабатывать!

ttnl ★★★★★
()
Ответ на: комментарий от doctorx

Почитай про hamster-applet. Может подойдет под твою задачу

aydar ★★★★★
()
Ответ на: Злой хак. от Deleted

за такой код вам нужно выколоть глаза и отрезать пальцы по плечи

google linux mem/kmem

anonymous
()

echo «0 0» > /proc/uptime не поможет?

Eddy_Em ☆☆☆☆☆
()
Ответ на: Злой хак. от Deleted

Прикол)

Это соединение является недоверенным

Вы попросили Firefox установить защищённое соединение с ivan-mironov.net, но мы не можем гарантировать, что это соединение является защищённым.

Обычно, когда вы пытаетесь установить защищённое соединение, сайты предъявляют проверенный идентификатор, служащий доказательством того, что вы направляетесь в нужное место. Однако идентификатор этого сайта не может быть проверен. Что мне делать?

Если вы обычно без проблем соединяетесь с данным сайтом, эта ошибка может означать, что кто-то пытается подменить этот сайт другим. В этом случае вам не следует продолжать соединение.

aydar ★★★★★
()

google linux mem/kmem

В курсе. Но у меня с ходу не вышло, то-ли на новых ядрах, то-ли только в федоре что-то с ними поменяли. С /dev/mem лишние заморочки, а в /dev/kmem система не давала ничего записать. Возможно это федоровский селинукс не давал, я не стал разбираться - быстрее было заменить одну строчку в «hello world kernel module» =).

Deleted
()
Ответ на: комментарий от Deleted

Ядро какое?

У меня на 2.6.31-r6 read из /dev/kmem не работает.

У тебя вот такое работает?

dd if=/dev/kmem seek=$((`grep total_sleep_time /lib/modules/`uname -r`/build/System.map | cut -d ' ' -f 1`)) bs=1 count=8 | od -l

anonymous
()
Ответ на: комментарий от anonymous

Вместо

seek=$((`grep total_sleep_time /lib/modules/$(uname -r)/build/System.map | cut -d ' ' -f 1`))
нужно что-то вроде
skip=$( ( printf 'ibase=16; '; sed -n 's,^\([^ ]*\) . total_sleep_time$,\1,p' /lib/modules/$(uname -r)/build/System.map | tr 'abcdef' 'ABCDEF' ) | bc )
Встроенными средствами шелла не получается переводить адрес из hex'а на 64х-разрядной системе, так как похоже там используется int и адрес попросту не влазит =).

На Fedora 12:

$ sudo dd if=/dev/kmem skip=$( ( printf 'ibase=16; '; sed -n 's,^\([^ ]*\) . total_sleep_time$,\1,p' /lib/modules/$(uname -r)/build/System.map | tr 'abcdef' 'ABCDEF' ) | bc ) bs=1 count=8 | od -l
dd: открытие `/dev/kmem': Нет такого файла или каталога
0000000

$ sudo mknod -m 640 /dev/kmem c 1 2

$ sudo dd if=/dev/kmem skip=$( ( printf 'ibase=16; '; sed -n 's,^\([^ ]*\) . total_sleep_time$,\1,p' /lib/modules/$(uname -r)/build/System.map | tr 'abcdef' 'ABCDEF' ) | bc ) bs=1 count=8 | od -l
dd: открытие `/dev/kmem': Нет такого устройства или адреса
0000000
А на gentoo с ядром 2.6.31-gentoo-r6 работает нормально.

Deleted
()
Ответ на: комментарий от Deleted

> нужно что-то вроде

Посмотрел на лог dd под strace - что seek=, что skip= выливаются в lseek(fd,0,SEEK_CUR) + lseek(fd, ADDR, SEEK_CUR)

Встроенными средствами шелла не получается переводить адрес из hex'а на 64х-разрядной системе, так как похоже там используется int и адрес попросту не влазит =).

bash 4.0.35(2), гента на x86_64 - перевод работает:

echo $((0x123456789ABCDE)) - выводит 5124...430

Вообше странно, у меня на генте 2.6.31-r6 чтение с /dev/kmem - не работает

anonymous
()
Ответ на: комментарий от anonymous

$(()) - работает по дефолту со знаковыми числами, и в случае с асдресами из ядра в амд64 получается -что-то там.

Кстати, заместо `tr abcdef ABCDEF` можно и нужно писать `dd conv=ucase` ;)

anonymous
()
Ответ на: комментарий от anonymous

Посмотрел на лог dd под strace - что seek=, что skip= выливаются в lseek(fd,0,SEEK_CUR) + lseek(fd, ADDR, SEEK_CUR)

skip делает lseek на читаемом файле (то, что нам нужно), а seek - на записываемом файле (нам это не нужно, да и просто бессмысленно, ведь этот файл - stdout).

bash 4.0.35(2), гента на x86_64 - перевод работает:

echo $((0x123456789ABCDE)) - выводит 5124...430

Тьфу ты, я ошибся, там не int, а int64_t. То есть шелл конвертирует со знаком, а нам нужно без:

$ echo $(( 0xEEEEEEEEEEEEEEEE ))
-1229782938247303442

$ echo 'ibase=16; EEEEEEEEEEEEEEEE' | bc
17216961135462248174

Вообше странно, у меня на генте 2.6.31-r6 чтение с /dev/kmem - не работает

А какую ошибку выдаёт?

Deleted
()
Ответ на: комментарий от Deleted

> skip делает lseek на читаемом файле

Ага, я затупил.

Тьфу ты, я ошибся, там не int, а int64_t. То есть шелл конвертирует со знаком, а нам нужно без:

Да, я про написал

А какую ошибку выдаёт?

dd if=/dev/kmem of=- skip=$(printf «%lu» 0x$(grep total_sleep_time /lib/modules/$(uname -r)/build/System.map | cut -d ' ' -f 1)) bs=1 count=8 | od -l

dd: reading `/dev/kmem': Bad address

Я так понимаю, у тебя ядро 32-х битное?

anonymous
()
Ответ на: комментарий от anonymous

Я так понимаю, у тебя ядро 32-х битное?

На Fedora 12 (где не читает) - 64х-разрядное, на Gentoo (где читает) - 32х-разрядное.

Вот федора:

$ uname -a
Linux ivan-laptop 2.6.31.12-174.2.3.fc12.x86_64 #1 SMP Mon Jan 18 19:52:07 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
И соответственно джента:
$ uname -a
Linux homeserver 2.6.31-gentoo-r6 #8 SMP Sun Dec 20 01:19:58 YEKT 2009 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz GenuineIntel GNU/Linux

Deleted
()
Ответ на: комментарий от Deleted

Проверил на другой дженте (с 64х-разрядным ядром) - не работает:

$ sudo dd if=/dev/kmem skip=$( ( printf 'ibase=16; '; sed -n 's,^\([^ ]*\) . total_sleep_time$,\1,p' /boot/System.map-genkernel-x86_64-2.6.30-gentoo-r5 | tr 'abcdef' 'ABCDEF' ) | bc ) bs=1 count=8 | od -l
dd: reading `/dev/kmem': Bad address
0000000
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000597387 s, 0.0 kB/s

$ uname -a
Linux xff 2.6.30-gentoo-r5 #1 SMP Fri Oct 9 21:27:35 YEKST 2009 x86_64 Intel(R) Celeron(R) CPU 440 @ 2.00GHz GenuineIntel GNU/Linux

Deleted
()
Ответ на: комментарий от Deleted

Понял по какой причине не работает не федоре:

$ grep CONFIG_DEVKMEM /boot/config-2.6.31.12-174.2.3.fc12.x86_64 
# CONFIG_DEVKMEM is not set
=)

Про gentoo amd64 вопрос открыт.

Deleted
()
Ответ на: комментарий от Deleted

Ну так тебе ж dd в логе писал:

dd: открытие `/dev/kmem': Нет такого устройства или адреса

;)

Ответ на открытый вопрос - оно не работает. Всё. Даже такая простая функциональность, как чтение/запись виртуальной памяти ядра и модуль в 100-строк не работает. Долбанный линукс :(

anonymous
()
Ответ на: комментарий от anonymous

Ну так тебе ж dd в логе писал:

dd: открытие `/dev/kmem': Нет такого устройства или адреса

;)

Это на федоре писало. Там причина ясна - /dev/kmem выпилен в конфиге ядра, видимо для усиления безопасности.

Ответ на открытый вопрос - оно не работает. Всё. Даже такая простая функциональность, как чтение/запись виртуальной памяти ядра и модуль в 100-строк не работает. Долбанный линукс :(

Походу проблема в том, что на amd64 чтение из /dev/kmem работает только через mmap. Сейчас проверю...

Deleted
()
Ответ на: комментарий от Deleted

Походу проблема в том, что на amd64 чтение из /dev/kmem работает только через mmap. Сейчас проверю...

Проблема в том, что обычное чтение не работает. mmap то же не работает:

#define _POSIX_MAPPED_FILES
#define _LARGEFILE64_SOURCE


#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>


int
main()
{
    int fd;
    void* kmem;
    unsigned long kaddr;

    fd = open("/dev/kmem", O_RDONLY);

    if( fd == -1 ) {
        perror("open()");
        exit(1);
    }

    if( scanf("%lx", &kaddr) != 1 ) {
        exit(1);
    }

    fprintf(stderr, "reading long from %lx\n", kaddr);

    kmem = mmap(NULL, sizeof(long), PROT_READ, MAP_SHARED, fd, kaddr);

    if(kmem == MAP_FAILED) {
        perror("map()");
        exit(1);
    }

    printf("%lx\n", *(unsigned long*)kmem);

    return 0;
}
anonymous
()
Ответ на: комментарий от xorik

>sleep 6h && notify-send -t 0 'Хватит красноглазить, ёпт!'

sleep 6h && halt

Hetor
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.