Линукс, вопросы и ответы.
Re: Линукс, вопросы и ответы.
google:// iptables masquerade
АХТУНГ! Грузит проц (при большом числе маскарадящихся). Не совсем тупые SoC'ы роутеров имеют аппаратные киллер-фичи для маскарада, что снижает жор проца почти до нуля.
Или распотрошить глубже и найти способ добавить правило после получения ip. Потом думать, что делать при смене ip. Если это pppoe, то обычно к нему прикручиваются скрипты, которые выполняются при коннектах/дисконнектах.
АХТУНГ! Грузит проц (при большом числе маскарадящихся). Не совсем тупые SoC'ы роутеров имеют аппаратные киллер-фичи для маскарада, что снижает жор проца почти до нуля.
Или распотрошить глубже и найти способ добавить правило после получения ip. Потом думать, что делать при смене ip. Если это pppoe, то обычно к нему прикручиваются скрипты, которые выполняются при коннектах/дисконнектах.
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Линукс, вопросы и ответы.
У меня нет PPPoE. Провайдер выдает сразу белый IP.
Чувствую, что придется потрошить прошивку и исправлять баг самому.
Чувствую, что придется потрошить прошивку и исправлять баг самому.
I am DX168B and this is my favourite forum on internet!
Re: Линукс, вопросы и ответы.
А если поставить задержку на применение правила? Или скриптом убедиться в получении корректного адреса и применить правило?
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Линукс, вопросы и ответы.
radteh
Выделится время, так и сделаю. О результатах сообщу.
Выделится время, так и сделаю. О результатах сообщу.
I am DX168B and this is my favourite forum on internet!
- rus084
- Друг Кота
- Сообщения: 3443
- Зарегистрирован: Вт июн 28, 2011 12:11:50
- Откуда: Россия,Ставропольский край, ст.Бекешевская
- Контактная информация:
Re: Линукс, вопросы и ответы.
почему простейшая программа весит 8кб?
если вызвать gcc с ключом -S в вывод кажется простым и логичным
но если просто скомпилировать , а потом вызвать objdump передо мной предстает нелогичная картина :
зачем там то что не выполняется никогда и то что не приносит никакого эффекта ?
upd: разобрался со всем что сверху , оказывается что можно убрать всё что вызывается перед функцией main ключом -nostdlib
почему ассемблерная вставка "asm("movl %0, %%ecx" :: "d" (&str) );" преобразовывается компилятором в не то что надо?
причем строка находится совсем по другому адресу (это адрес 4096го байта , где начинается заголовок elfа) .
Код: Выделить всё
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: Линукс, вопросы и ответы.
юзаю арч
не получается запустить иксы
установил 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 присутствуют несколько ошибок с предупреждениями
как в логах узнать материнскую ошибку или предупреждение которые порождают все остальные ошибки ?
не получается запустить иксы
установил 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 присутствуют несколько ошибок с предупреждениями
как в логах узнать материнскую ошибку или предупреждение которые порождают все остальные ошибки ?
Tell Me The Truth
Re: Линукс, вопросы и ответы.
Не находит кучу модулей. Посмотри ещё логи "/var/log/Xorg.0.log"
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Линукс, вопросы и ответы.
А смысл ставить проприетарные драйвера, если иксы их и не пытаются грузить
Либо nvidia прописывать в xorg.conf, либо nouveau ставить.
Failed to load module "nouveau" (module does not exist, 0)
Либо nvidia прописывать в xorg.conf, либо nouveau ставить.
Re: Линукс, вопросы и ответы.
Tell Me The Truth
- rus084
- Друг Кота
- Сообщения: 3443
- Зарегистрирован: Вт июн 28, 2011 12:11:50
- Откуда: Россия,Ставропольский край, ст.Бекешевская
- Контактная информация:
Re: Линукс, вопросы и ответы.
захотел поэксперементировать с 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 через рекавери , сейчас всё работает .
в чем может быть дело?
брал образ через recovery , пробовал через dd , сохраняется один и тот-же образ размером 6,3мб .
дальше распаковываю с помощью http://forum.xda-developers.com/showthr ... ?t=1587411
получается initfs и ядро . ничего не меняю , обратно запаковываю , размер получается 4,7мб .
когда заливаю boot.img обратно , телефон не запускается . пробовал заливать через рекавери и через dd .
восстановил boot.img через рекавери , сейчас всё работает .
в чем может быть дело?
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Линукс, вопросы и ответы.
А дайте-ка этот исходный 6.3 МБ образ - попробую у себя распаковать-упаковать. Хотя бы увидеть, тоже 4,7МБ получится или нет.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Линукс, вопросы и ответы.
Да, перепакованный boot.img получается меньше размером.
Что интересно, если уже его снова распаковать - результат распаковки такой же, как у оригинального. То есть, похоже, уже на этом этапе, а не на перепаковке, что-то теряется.
Что интересно, если уже его снова распаковать - результат распаковки такой же, как у оригинального. То есть, похоже, уже на этом этапе, а не на перепаковке, что-то теряется.
- rus084
- Друг Кота
- Сообщения: 3443
- Зарегистрирован: Вт июн 28, 2011 12:11:50
- Откуда: Россия,Ставропольский край, ст.Бекешевская
- Контактная информация:
Re: Линукс, вопросы и ответы.
странно , если распаковывать с опцией --debug , cpio архивы исходного и перепакованного образа имеют одинаковые размеры .
cpio перепакованый запакованный в gz имеет размер 640,2кб , исходный 642,4кб . это то понятно - архиватор более эффективный
открыл hex редактором boot.img , начиная с адреса 0x46ff88 образ забит нулями , получается 1638519 байт нулей . вот и обнаружилась пропажа 1,6мб данных .
cтранно , теперь загрузился , хотя ничего не изменилось вроде
зато теперь есть чем заняться пока буду ехать в поезде 2 дня
cpio перепакованый запакованный в gz имеет размер 640,2кб , исходный 642,4кб . это то понятно - архиватор более эффективный
открыл hex редактором boot.img , начиная с адреса 0x46ff88 образ забит нулями , получается 1638519 байт нулей . вот и обнаружилась пропажа 1,6мб данных .
cтранно , теперь загрузился , хотя ничего не изменилось вроде
зато теперь есть чем заняться пока буду ехать в поезде 2 дня
Re: Линукс, вопросы и ответы.
прошу совета
при применении команды grub-mkconfig -o /boot/grub/grub.cfg не обнаруживается Windows XP
диск разбит на следующие разделы
разделы расположенны следующим образом
sda1 - основной , установлена Windows 7
sda3 - основной, установлена Windows XP
sda2 - расширенный, сдесь находятся логические диски и линукс
сначала была установленна хрюша, потом семерка, потом линукс
в чем может быть трабла ?
при применении команды grub-mkconfig -o /boot/grub/grub.cfg не обнаруживается Windows XP
диск разбит на следующие разделы
разделы расположенны следующим образом
sda1 - основной , установлена Windows 7
sda3 - основной, установлена Windows XP
sda2 - расширенный, сдесь находятся логические диски и линукс
сначала была установленна хрюша, потом семерка, потом линукс
в чем может быть трабла ?
Tell Me The Truth
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Линукс, вопросы и ответы.
os-prober установлен?
Re: Линукс, вопросы и ответы.
Режим BIOS включен или UEFI? Попробуй вручную прописать загрузку хрюши.
или так
Код: Выделить всё
menuentry "Windows" {
chainloader (hd0,3)+1
} или так
Код: Выделить всё
submenu "Windows XP" {
set root=hd0,3
ntldr /ntldr
}- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Линукс, вопросы и ответы.
Кстати, а зачем такой зоопарк ОС? Если так уж нужна винда, то и семёрки хватит. А если нужна XP для каких-то отдельных программ, то её можно и в виртуальной машине запустить. Как из-под Win7, так и из-под Linux. И место заодно сэкономится - лишний раздел выделять не надо.
- Андрей Бедов
- Друг Кота
- Сообщения: 37346
- Зарегистрирован: Чт авг 30, 2012 20:24:40
- Откуда: Нижний Новгород
Re: Линукс, вопросы и ответы.
Наверно, ХР держат больше из-за совместимости с реальным железом и периферией. В этом случае виртуализация не спасет.
Да и о реальной скорости работы можно позабыть (если конечно не две башки по восемь ядер).
Структура меню и логика команд загрузчика GRUB хорошо описана в приложенной к нему документации (если качать полную версию).
Да и о реальной скорости работы можно позабыть (если конечно не две башки по восемь ядер).
Структура меню и логика команд загрузчика GRUB хорошо описана в приложенной к нему документации (если качать полную версию).
