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

Неработающие компьютеры и все, что с ними связано.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

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

Сообщение hybroid »

google:// iptables masquerade
АХТУНГ! Грузит проц (при большом числе маскарадящихся). Не совсем тупые SoC'ы роутеров имеют аппаратные киллер-фичи для маскарада, что снижает жор проца почти до нуля.
Или распотрошить глубже и найти способ добавить правило после получения ip. Потом думать, что делать при смене ip. Если это pppoe, то обычно к нему прикручиваются скрипты, которые выполняются при коннектах/дисконнектах.
Реклама
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

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

Сообщение DX168B »

У меня нет PPPoE. Провайдер выдает сразу белый IP.
Чувствую, что придется потрошить прошивку и исправлять баг самому.
I am DX168B and this is my favourite forum on internet!
Реклама
Аватара пользователя
radteh
Друг Кота
Сообщения: 3087
Зарегистрирован: Пт мар 09, 2007 15:01:52
Откуда: Биробиджан

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

Сообщение radteh »

А если поставить задержку на применение правила? Или скриптом убедиться в получении корректного адреса и применить правило?
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

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

Сообщение DX168B »

radteh
Выделится время, так и сделаю. О результатах сообщу.
I am DX168B and this is my favourite forum on internet!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
rus084
Друг Кота
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская
Контактная информация:

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

Сообщение rus084 »

почему простейшая программа весит 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а) .
Меня зовут Димон .
Изображение
Изображение
Реклама
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

юзаю арч
не получается запустить иксы
установил 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
Реклама
Аватара пользователя
radteh
Друг Кота
Сообщения: 3087
Зарегистрирован: Пт мар 09, 2007 15:01:52
Откуда: Биробиджан

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

Сообщение radteh »

Не находит кучу модулей. Посмотри ещё логи "/var/log/Xorg.0.log"
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

А смысл ставить проприетарные драйвера, если иксы их и не пытаются грузить
Failed to load module "nouveau" (module does not exist, 0)
Либо nvidia прописывать в xorg.conf, либо nouveau ставить.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

WiseLord писал(а):либо nouveau ставить
не помогло
http://dpaste.com/0YVH735
Tell Me The Truth
Аватара пользователя
rus084
Друг Кота
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская
Контактная информация:

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

Сообщение rus084 »

захотел поэксперементировать с 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 через рекавери , сейчас всё работает .
в чем может быть дело?
Меня зовут Димон .
Изображение
Изображение
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

А дайте-ка этот исходный 6.3 МБ образ - попробую у себя распаковать-упаковать. Хотя бы увидеть, тоже 4,7МБ получится или нет.
Аватара пользователя
rus084
Друг Кота
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская
Контактная информация:

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

Сообщение rus084 »

Меня зовут Димон .
Изображение
Изображение
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

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

Что интересно, если уже его снова распаковать - результат распаковки такой же, как у оригинального. То есть, похоже, уже на этом этапе, а не на перепаковке, что-то теряется.
Аватара пользователя
rus084
Друг Кота
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская
Контактная информация:

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

Сообщение rus084 »

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

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

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

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

зато теперь есть чем заняться пока буду ехать в поезде 2 дня
Меня зовут Димон .
Изображение
Изображение
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

прошу совета
при применении команды 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: Линукс, вопросы и ответы.

Сообщение WiseLord »

os-prober установлен?
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

да
Tell Me The Truth
Аватара пользователя
radteh
Друг Кота
Сообщения: 3087
Зарегистрирован: Пт мар 09, 2007 15:01:52
Откуда: Биробиджан

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

Сообщение radteh »

Режим 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: Линукс, вопросы и ответы.

Сообщение WiseLord »

Кстати, а зачем такой зоопарк ОС? Если так уж нужна винда, то и семёрки хватит. А если нужна XP для каких-то отдельных программ, то её можно и в виртуальной машине запустить. Как из-под Win7, так и из-под Linux. И место заодно сэкономится - лишний раздел выделять не надо.
Аватара пользователя
Андрей Бедов
Друг Кота
Сообщения: 37346
Зарегистрирован: Чт авг 30, 2012 20:24:40
Откуда: Нижний Новгород

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

Сообщение Андрей Бедов »

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

Вернуться в «Ничего не работает»