Неработающие компьютеры и все, что с ними связано.
Ответить

Re: Линукс, вопросы и ответы.

Пт дек 25, 2015 23:41:22

google:// iptables masquerade
АХТУНГ! Грузит проц (при большом числе маскарадящихся). Не совсем тупые SoC'ы роутеров имеют аппаратные киллер-фичи для маскарада, что снижает жор проца почти до нуля.
Или распотрошить глубже и найти способ добавить правило после получения ip. Потом думать, что делать при смене ip. Если это pppoe, то обычно к нему прикручиваются скрипты, которые выполняются при коннектах/дисконнектах.

Re: Линукс, вопросы и ответы.

Вт дек 29, 2015 16:04:24

У меня нет PPPoE. Провайдер выдает сразу белый IP.
Чувствую, что придется потрошить прошивку и исправлять баг самому.

Re: Линукс, вопросы и ответы.

Пт янв 01, 2016 08:53:49

А если поставить задержку на применение правила? Или скриптом убедиться в получении корректного адреса и применить правило?

Re: Линукс, вопросы и ответы.

Ср янв 13, 2016 22:38:04

radteh
Выделится время, так и сделаю. О результатах сообщу.

Re: Линукс, вопросы и ответы.

Вс янв 24, 2016 00:59:52

почему простейшая программа весит 8кб?
Код:
void main(void) {
while(1) {
}
}


если вызвать gcc с ключом -S в вывод кажется простым и логичным
Спойлер
Код:
   .file   "main2.c"
   .text
   .globl   main
   .type   main, @function
main:
.LFB0:
   .cfi_startproc
   pushq   %rbp
   .cfi_def_cfa_offset 16
   .cfi_offset 6, -16
   movq   %rsp, %rbp
   .cfi_def_cfa_register 6
.L2:
   jmp   .L2
   .cfi_endproc
.LFE0:
   .size   main, .-main
   .ident   "GCC: (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4"
   .section   .note.GNU-stack,"",@progbits


но если просто скомпилировать , а потом вызвать objdump передо мной предстает нелогичная картина :
Спойлер
Код:
a.out:     формат файла elf64-x86-64


Дизассемблирование раздела .init:

00000000004003a8 <_init>:
  4003a8:   48 83 ec 08             sub    $0x8,%rsp
  4003ac:   48 8b 05 45 0c 20 00    mov    0x200c45(%rip),%rax        # 600ff8 <_DYNAMIC+0x1d0>
  4003b3:   48 85 c0                test   %rax,%rax
  4003b6:   74 05                   je     4003bd <_init+0x15>
  4003b8:   e8 33 00 00 00          callq  4003f0 <__gmon_start__@plt>
  4003bd:   48 83 c4 08             add    $0x8,%rsp
  4003c1:   c3                      retq   

Дизассемблирование раздела .plt:

00000000004003d0 <__libc_start_main@plt-0x10>:
  4003d0:   ff 35 32 0c 20 00       pushq  0x200c32(%rip)        # 601008 <_GLOBAL_OFFSET_TABLE_+0x8>
  4003d6:   ff 25 34 0c 20 00       jmpq   *0x200c34(%rip)        # 601010 <_GLOBAL_OFFSET_TABLE_+0x10>
  4003dc:   0f 1f 40 00             nopl   0x0(%rax)

00000000004003e0 <__libc_start_main@plt>:
  4003e0:   ff 25 32 0c 20 00       jmpq   *0x200c32(%rip)        # 601018 <_GLOBAL_OFFSET_TABLE_+0x18>
  4003e6:   68 00 00 00 00          pushq  $0x0
  4003eb:   e9 e0 ff ff ff          jmpq   4003d0 <_init+0x28>

00000000004003f0 <__gmon_start__@plt>:
  4003f0:   ff 25 2a 0c 20 00       jmpq   *0x200c2a(%rip)        # 601020 <_GLOBAL_OFFSET_TABLE_+0x20>
  4003f6:   68 01 00 00 00          pushq  $0x1
  4003fb:   e9 d0 ff ff ff          jmpq   4003d0 <_init+0x28>

Дизассемблирование раздела .text:

0000000000400400 <_start>:
  400400:   31 ed                   xor    %ebp,%ebp
  400402:   49 89 d1                mov    %rdx,%r9
  400405:   5e                      pop    %rsi
  400406:   48 89 e2                mov    %rsp,%rdx
  400409:   48 83 e4 f0             and    $0xfffffffffffffff0,%rsp
  40040d:   50                      push   %rax
  40040e:   54                      push   %rsp
  40040f:   49 c7 c0 70 05 40 00    mov    $0x400570,%r8
  400416:   48 c7 c1 00 05 40 00    mov    $0x400500,%rcx
  40041d:   48 c7 c7 ed 04 40 00    mov    $0x4004ed,%rdi
  400424:   e8 b7 ff ff ff          callq  4003e0 <__libc_start_main@plt>
  400429:   f4                      hlt   
  40042a:   66 0f 1f 44 00 00       nopw   0x0(%rax,%rax,1)

0000000000400430 <deregister_tm_clones>:
  400430:   b8 3f 10 60 00          mov    $0x60103f,%eax
  400435:   55                      push   %rbp
  400436:   48 2d 38 10 60 00       sub    $0x601038,%rax
  40043c:   48 83 f8 0e             cmp    $0xe,%rax
  400440:   48 89 e5                mov    %rsp,%rbp
  400443:   77 02                   ja     400447 <deregister_tm_clones+0x17>
  400445:   5d                      pop    %rbp
  400446:   c3                      retq   
  400447:   b8 00 00 00 00          mov    $0x0,%eax
  40044c:   48 85 c0                test   %rax,%rax
  40044f:   74 f4                   je     400445 <deregister_tm_clones+0x15>
  400451:   5d                      pop    %rbp
  400452:   bf 38 10 60 00          mov    $0x601038,%edi
  400457:   ff e0                   jmpq   *%rax
  400459:   0f 1f 80 00 00 00 00    nopl   0x0(%rax)

0000000000400460 <register_tm_clones>:
  400460:   b8 38 10 60 00          mov    $0x601038,%eax
  400465:   55                      push   %rbp
  400466:   48 2d 38 10 60 00       sub    $0x601038,%rax
  40046c:   48 c1 f8 03             sar    $0x3,%rax
  400470:   48 89 e5                mov    %rsp,%rbp
  400473:   48 89 c2                mov    %rax,%rdx
  400476:   48 c1 ea 3f             shr    $0x3f,%rdx
  40047a:   48 01 d0                add    %rdx,%rax
  40047d:   48 d1 f8                sar    %rax
  400480:   75 02                   jne    400484 <register_tm_clones+0x24>
  400482:   5d                      pop    %rbp
  400483:   c3                      retq   
  400484:   ba 00 00 00 00          mov    $0x0,%edx
  400489:   48 85 d2                test   %rdx,%rdx
  40048c:   74 f4                   je     400482 <register_tm_clones+0x22>
  40048e:   5d                      pop    %rbp
  40048f:   48 89 c6                mov    %rax,%rsi
  400492:   bf 38 10 60 00          mov    $0x601038,%edi
  400497:   ff e2                   jmpq   *%rdx
  400499:   0f 1f 80 00 00 00 00    nopl   0x0(%rax)

00000000004004a0 <__do_global_dtors_aux>:
  4004a0:   80 3d 91 0b 20 00 00    cmpb   $0x0,0x200b91(%rip)        # 601038 <__TMC_END__>
  4004a7:   75 11                   jne    4004ba <__do_global_dtors_aux+0x1a>
  4004a9:   55                      push   %rbp
  4004aa:   48 89 e5                mov    %rsp,%rbp
  4004ad:   e8 7e ff ff ff          callq  400430 <deregister_tm_clones>
  4004b2:   5d                      pop    %rbp
  4004b3:   c6 05 7e 0b 20 00 01    movb   $0x1,0x200b7e(%rip)        # 601038 <__TMC_END__>
  4004ba:   f3 c3                   repz retq
  4004bc:   0f 1f 40 00             nopl   0x0(%rax)

00000000004004c0 <frame_dummy>:
  4004c0:   48 83 3d 58 09 20 00    cmpq   $0x0,0x200958(%rip)        # 600e20 <__JCR_END__>
  4004c7:   00
  4004c8:   74 1e                   je     4004e8 <frame_dummy+0x28>
  4004ca:   b8 00 00 00 00          mov    $0x0,%eax
  4004cf:   48 85 c0                test   %rax,%rax
  4004d2:   74 14                   je     4004e8 <frame_dummy+0x28>
  4004d4:   55                      push   %rbp
  4004d5:   bf 20 0e 60 00          mov    $0x600e20,%edi
  4004da:   48 89 e5                mov    %rsp,%rbp
  4004dd:   ff d0                   callq  *%rax
  4004df:   5d                      pop    %rbp
  4004e0:   e9 7b ff ff ff          jmpq   400460 <register_tm_clones>
  4004e5:   0f 1f 00                nopl   (%rax)
  4004e8:   e9 73 ff ff ff          jmpq   400460 <register_tm_clones>

00000000004004ed <main>:
  4004ed:   55                      push   %rbp
  4004ee:   48 89 e5                mov    %rsp,%rbp
  4004f1:   eb fe                   jmp    4004f1 <main+0x4>
  4004f3:   66 2e 0f 1f 84 00 00    nopw   %cs:0x0(%rax,%rax,1)
  4004fa:   00 00 00
  4004fd:   0f 1f 00                nopl   (%rax)

0000000000400500 <__libc_csu_init>:
  400500:   41 57                   push   %r15
  400502:   41 89 ff                mov    %edi,%r15d
  400505:   41 56                   push   %r14
  400507:   49 89 f6                mov    %rsi,%r14
  40050a:   41 55                   push   %r13
  40050c:   49 89 d5                mov    %rdx,%r13
  40050f:   41 54                   push   %r12
  400511:   4c 8d 25 f8 08 20 00    lea    0x2008f8(%rip),%r12        # 600e10 <__frame_dummy_init_array_entry>
  400518:   55                      push   %rbp
  400519:   48 8d 2d f8 08 20 00    lea    0x2008f8(%rip),%rbp        # 600e18 <__init_array_end>
  400520:   53                      push   %rbx
  400521:   4c 29 e5                sub    %r12,%rbp
  400524:   31 db                   xor    %ebx,%ebx
  400526:   48 c1 fd 03             sar    $0x3,%rbp
  40052a:   48 83 ec 08             sub    $0x8,%rsp
  40052e:   e8 75 fe ff ff          callq  4003a8 <_init>
  400533:   48 85 ed                test   %rbp,%rbp
  400536:   74 1e                   je     400556 <__libc_csu_init+0x56>
  400538:   0f 1f 84 00 00 00 00    nopl   0x0(%rax,%rax,1)
  40053f:   00
  400540:   4c 89 ea                mov    %r13,%rdx
  400543:   4c 89 f6                mov    %r14,%rsi
  400546:   44 89 ff                mov    %r15d,%edi
  400549:   41 ff 14 dc             callq  *(%r12,%rbx,8)
  40054d:   48 83 c3 01             add    $0x1,%rbx
  400551:   48 39 eb                cmp    %rbp,%rbx
  400554:   75 ea                   jne    400540 <__libc_csu_init+0x40>
  400556:   48 83 c4 08             add    $0x8,%rsp
  40055a:   5b                      pop    %rbx
  40055b:   5d                      pop    %rbp
  40055c:   41 5c                   pop    %r12
  40055e:   41 5d                   pop    %r13
  400560:   41 5e                   pop    %r14
  400562:   41 5f                   pop    %r15
  400564:   c3                      retq   
  400565:   66 66 2e 0f 1f 84 00    data32 nopw %cs:0x0(%rax,%rax,1)
  40056c:   00 00 00 00

0000000000400570 <__libc_csu_fini>:
  400570:   f3 c3                   repz retq

Дизассемблирование раздела .fini:

0000000000400574 <_fini>:
  400574:   48 83 ec 08             sub    $0x8,%rsp
  400578:   48 83 c4 08             add    $0x8,%rsp
  40057c:   c3                      retq   

зачем там то что не выполняется никогда и то что не приносит никакого эффекта ?

upd: разобрался со всем что сверху , оказывается что можно убрать всё что вызывается перед функцией main ключом -nostdlib

почему ассемблерная вставка "asm("movl %0, %%ecx" :: "d" (&str) );" преобразовывается компилятором в не то что надо?
Код:
 
mov    $0x804a000,%eax
mov    %eax,%edx
mov    %edx,%ecx


причем строка находится совсем по другому адресу (это адрес 4096го байта , где начинается заголовок elfа) .

Re: Линукс, вопросы и ответы.

Пт май 27, 2016 13:26:28

юзаю арч
не получается запустить иксы
установил xorg-server xorg-init xorg-twm xterm xorg-clock
выполнил cp /etc/X11/xinit/xinitrc ~/.xinitrc
установил дрова на видеокарту nvidia-304xx-lts и nvidia-304xx-libgl
как можна произвести диагностику неисправности ?
в гугле единственного подхода к решению этой проблеммы не нашол
в логах http://dpaste.com/2GDAZZ8 присутствуют несколько ошибок с предупреждениями
как в логах узнать материнскую ошибку или предупреждение которые порождают все остальные ошибки ?

Re: Линукс, вопросы и ответы.

Пт май 27, 2016 15:13:42

Не находит кучу модулей. Посмотри ещё логи "/var/log/Xorg.0.log"

Re: Линукс, вопросы и ответы.

Пт май 27, 2016 15:26:12

А смысл ставить проприетарные драйвера, если иксы их и не пытаются грузить
Failed to load module "nouveau" (module does not exist, 0)

Либо nvidia прописывать в xorg.conf, либо nouveau ставить.

Re: Линукс, вопросы и ответы.

Сб май 28, 2016 15:15:18

WiseLord писал(а):либо nouveau ставить

не помогло
http://dpaste.com/0YVH735

Re: Линукс, вопросы и ответы.

Чт июл 21, 2016 20:04:02

захотел поэксперементировать с boot.img (сделать дуал бут с флешки) в своем lenovo a516 на mt6572 .
брал образ через recovery , пробовал через dd , сохраняется один и тот-же образ размером 6,3мб .
дальше распаковываю с помощью http://forum.xda-developers.com/showthr ... ?t=1587411
получается initfs и ядро . ничего не меняю , обратно запаковываю , размер получается 4,7мб .
когда заливаю boot.img обратно , телефон не запускается . пробовал заливать через рекавери и через dd .
восстановил boot.img через рекавери , сейчас всё работает .
в чем может быть дело?

Re: Линукс, вопросы и ответы.

Чт июл 21, 2016 20:25:55

А дайте-ка этот исходный 6.3 МБ образ - попробую у себя распаковать-упаковать. Хотя бы увидеть, тоже 4,7МБ получится или нет.

Re: Линукс, вопросы и ответы.

Чт июл 21, 2016 21:29:37

https://drive.google.com/file/d/0B3qYo0 ... sp=sharing

Re: Линукс, вопросы и ответы.

Чт июл 21, 2016 22:14:04

Да, перепакованный boot.img получается меньше размером.

Что интересно, если уже его снова распаковать - результат распаковки такой же, как у оригинального. То есть, похоже, уже на этом этапе, а не на перепаковке, что-то теряется.

Re: Линукс, вопросы и ответы.

Чт июл 21, 2016 23:00:01

странно , если распаковывать с опцией --debug , cpio архивы исходного и перепакованного образа имеют одинаковые размеры .

cpio перепакованый запакованный в gz имеет размер 640,2кб , исходный 642,4кб . это то понятно - архиватор более эффективный

открыл hex редактором boot.img , начиная с адреса 0x46ff88 образ забит нулями , получается 1638519 байт нулей . вот и обнаружилась пропажа 1,6мб данных .

cтранно , теперь загрузился , хотя ничего не изменилось вроде

зато теперь есть чем заняться пока буду ехать в поезде 2 дня

Re: Линукс, вопросы и ответы.

Пн окт 03, 2016 14:18:34

прошу совета
при применении команды grub-mkconfig -o /boot/grub/grub.cfg не обнаруживается Windows XP
диск разбит на следующие разделы
разделы расположенны следующим образом
sda1 - основной , установлена Windows 7
sda3 - основной, установлена Windows XP
sda2 - расширенный, сдесь находятся логические диски и линукс
сначала была установленна хрюша, потом семерка, потом линукс
в чем может быть трабла ?

Re: Линукс, вопросы и ответы.

Пн окт 03, 2016 16:46:22

os-prober установлен?

Re: Линукс, вопросы и ответы.

Пн окт 03, 2016 16:48:52

да

Re: Линукс, вопросы и ответы.

Вт окт 04, 2016 07:00:51

Режим BIOS включен или UEFI? Попробуй вручную прописать загрузку хрюши.
Код:
menuentry "Windows" {
 chainloader (hd0,3)+1

или так
Код:
submenu "Windows XP" {
 set root=hd0,3
 ntldr 
/ntldr
}

Re: Линукс, вопросы и ответы.

Вт окт 04, 2016 07:09:06

Кстати, а зачем такой зоопарк ОС? Если так уж нужна винда, то и семёрки хватит. А если нужна XP для каких-то отдельных программ, то её можно и в виртуальной машине запустить. Как из-под Win7, так и из-под Linux. И место заодно сэкономится - лишний раздел выделять не надо.

Re: Линукс, вопросы и ответы.

Вт окт 04, 2016 07:31:59

Наверно, ХР держат больше из-за совместимости с реальным железом и периферией. В этом случае виртуализация не спасет.
Да и о реальной скорости работы можно позабыть (если конечно не две башки по восемь ядер).
Структура меню и логика команд загрузчика GRUB хорошо описана в приложенной к нему документации (если качать полную версию).
Ответить